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();
            }
  • 相关阅读:
    异常定义-Mybatis中的源码参考
    前置机介绍说明
    MyBatis源码解析(一)
    Mybatis思
    石杉的架构笔记(一)
    nacos启动
    JVM图解
    二叉搜索树的第K大节点
    第一个只出现一次的字符
    表示数值的字符串
  • 原文地址:https://www.cnblogs.com/chenyongblog/p/3420274.html
Copyright © 2011-2022 走看看