zoukankan      html  css  js  c++  java
  • 设计模式-创建者模式-抽象工厂模式

    一、抽象工厂模式

    四个组成部分:抽象产品接口、具体产品、抽象工厂接口、具体工厂
    抽象工厂可以包含不同的工厂,不同的工厂可以创建出相通目标类的不同实例

        interface IProductA
        {
            void ProductA();
        }
        interface IProductB
        {
            void ProductB();
        }
        class ProductAOne:IProductA
        {
            public void ProductA()
            {
                Console.WriteLine("Products A--One");
            }
        }
        class ProductATwo:IProductA
        {
            public void ProductA()
            {
                Console.WriteLine("Products A--Two");
            }
        }
        class ProductBOne:IProductB
        {
            public void ProductB()
            {
                Console.WriteLine("Products B--One");
            }
        }
        class ProductBTwo:IProductB
        {
            public void ProductB()
            {
                Console.WriteLine("Products B--Two");
            }
        }
        interface IFactory
        {
            IProductA CreateProductA();
            IProductB CreateProductB();
        }
        class FactoryOne:IFactory
        {
            public IProductA CreateProductA()
            {
                return new ProductAOne();
            }
    
            public IProductB CreateProductB()
            {
                return new ProductBOne();
            }
        }
         class FactoryTwo:IFactory
        {
            public IProductA CreateProductA()
            {
                return new ProductATwo();
            }
    
            public IProductB CreateProductB()
            {
                return new ProductBTwo();
            }
        }
            static void Main(string[] args)
            {
                var factory = new FactoryOne();
                var productAOne = factory.CreateProductA();
                productAOne.ProductA();
                var productBOne = factory.CreateProductB();
                productBOne.ProductB();
    
                var newfactory = new FactoryTwo();
                var productATwo = newfactory.CreateProductA();
                productATwo.ProductA();
                var productBTwo = newfactory.CreateProductB();
                productBTwo.ProductB();
    
                Console.ReadKey();
            }
  • 相关阅读:
    编译nginx
    MVPN技术原理
    python中_, __, __foo__区别及使用场景
    https双向认证(python)
    http keepalive test code(python)
    压缩 KVM 的 qcow2 镜像文件
    nohup python程序,print无输出
    Less(51)
    Less(50)
    Less(49)
  • 原文地址:https://www.cnblogs.com/chenyongblog/p/3420274.html
Copyright © 2011-2022 走看看