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();
            }
  • 相关阅读:
    ZOJ3626(树形dp)
    poj2486(树形dp)
    byte的范围-128-127
    div里面放img
    css为什么要定最小宽度和最大宽度,最小宽度和最大宽度有什么用
    Js中的apply和call
    Jquery点击事件出发顺序
    Jquery操作Dom
    Jquery选择器
    Django用ajax发送post请求时csrf拦截的解决方案
  • 原文地址:https://www.cnblogs.com/chenyongblog/p/3420274.html
Copyright © 2011-2022 走看看