• 设计模式-创建者模式-抽象工厂模式


    一、抽象工厂模式

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

        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();
            }
  • 相关阅读:
    最短路径的三种实现方法
    c/c++小知识
    c++ char * const p问题
    C++ typedef 四个用途
    [转]c++面向对象基础
    [转]C++中引用(&)的用法和应用实例
    表情包。
    linux基础学习
    redis缓存在项目中的使用
    关于redis
  • 原文地址:https://www.cnblogs.com/chenyongblog/p/3420274.html
Copyright © 2020-2023  润新知