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();
            }
  • 相关阅读:
    大话设计模式--建造者模式 Builder -- C++实现实例
    HTTP状态码大全
    安装mongodb卡顿
    sublime_win配置
    sublime__最全面的 Sublime Text 使用指南
    sublime text 3搭建python 的ide
    spring boot与 spring.factories
    自定义xml spring bean
    统计分析: 跨库多表join
    java基础
  • 原文地址:https://www.cnblogs.com/chenyongblog/p/3420274.html
Copyright © 2011-2022 走看看