zoukankan      html  css  js  c++  java
  • 设计模式之抽象工厂模式代码示例

    using System;
    
    namespace AbstractFactoryFunc{
    
        public abstract class AbstractProductA{
            public abstract void ProductAMethod();
        }
    
        public class ProductA1 : AbstractProductA{
            public override void ProductAMethod(){
                Console.Write(this.ToString() + " : Method!");
                Console.Read();
            }
        }
    
        public class ProductA2 : AbstractProductA{
            public override void ProductAMethod(){
                Console.Write(this.ToString() + " : Method!");
                Console.Read();
            }
        }
        
        public abstract class AbstractProductB{
            public abstract void ProductBMethod();
        }    
    
        public class ProductB1 : AbstractProductB{
            public override void ProductBMethod(){
                Console.Write(this.ToString() + " : Method!");
                Console.Read();
            }
        }
    
        public class ProductB2 : AbstractProductB{
            public override void ProductBMethod(){
                Console.Write(this.ToString() + " : Method!");
                Console.Read();
            }
        }
    
        public abstract class AbstractFactory{
            public abstract AbstractProductA CreateProductA();
            public abstract AbstractProductB CreateProductB();
        }    
    
        public class ConcreteFactory1 : AbstractFactory{
            public override AbstractProductA CreateProductA()
            {
                return new ProductA1();
            }
            public override AbstractProductB CreateProductB()
            {
                return new ProductB1();
            }
        }
    
        public class ConcreteFactory2 : AbstractFactory{
            public override AbstractProductA CreateProductA()
            {
                return new ProductA2();
            }
            public override AbstractProductB CreateProductB()
            {
                return new ProductB2();
            }
        }
    
        public class Client{
    
            public AbstractProductA abstractProductA;
            public AbstractProductB abstractProductB;
    
            public Client(AbstractFactory abstractFactory){
                abstractProductA = abstractFactory.CreateProductA();
                abstractProductB = abstractFactory.CreateProductB();
            }
    
            public void Run()
            {
                abstractProductA.ProductAMethod();
                abstractProductB.ProductBMethod();
            }
        }
    
        public class EntryPoint{
            public static void Main(string[] args){
                AbstractFactory factory1 = new ConcreteFactory1();
                Client myClient = new Client(factory1);
                myClient.Run();
                Console.Read();
                Console.ReadKey();
            }
        }
    }
  • 相关阅读:
    字符编码解码
    综合练习[购物车]
    for 循环实例
    数据类型
    字符串格式化输出
    集成开发环境
    while循环实例
    赋值运算符、逻辑运算符、表达式
    if,else语句猜最大值
    计算今天和今天的上一月的日期
  • 原文地址:https://www.cnblogs.com/zhangchenliang/p/2651480.html
Copyright © 2011-2022 走看看