zoukankan      html  css  js  c++  java
  • Head First设计模式学习笔记:工厂方法

    .NET FCL中工厂方法的实例:枚举器

    1. IEnumerable是工厂原型
    2. IEnumerator是产品原型
    3. List, ArrayList这些类都是建立产品的具体类,都实现了IEnumerable接口,有一个GetEnumerator()的方法返回IEnumerator

    实现一个简单的工厂方法

     

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Collections;

    namespace DesignPattern.FactoryMethod
    {   

        
    //工厂原型
        interface IFactory
        
    {
            
    //建立产品的方法(这就是工厂方法?)
            IProduct CreateProduct();
        }


        
    //产品原型
        interface IProduct
        
    {
            
    string ProductName
            
    setget; }

            
    int GetQty();
        }


        
    //具体工厂1
        class Factory1 : IFactory
        
    {
            
    IFactory Members
        }


        
    //具体产品1
        class Product1 : IProduct
        
    {
            
    IProduct Members

            
    public override string ToString()
            
    {
                
    return string.Format("<Product 1>|ProductName={0}, GetQty={1}", ProductName, GetQty());
            }

        }


        
    //具体工厂2
        class Factory2 : IFactory
        
    {
            
    IFactory Members

            
    //具体产品2
           public class Product2 : IProduct
            
    {
                
    IProduct Members


                
    public override string ToString()
                
    {
                    
    return string.Format("<Product 2>|ProductName={0}, GetQty={1}", ProductName, GetQty());
                }

            }


        }


        
    class Program
        
    {
            
    static void Main(string[] args)
            
    {
                IFactory factory 
    = new Factory1();

                IProduct product 
    = factory.CreateProduct();

                Console.WriteLine(product);

                factory 
    = new Factory2();
                product 
    = factory.CreateProduct();
                Console.WriteLine(product);

                Console.ReadLine();
            }

        }


    }

  • 相关阅读:
    收集的各种学习链接,方便查找
    用python调试Appium和雷电模拟器连接时出现Original error: Could not find 'adb.exe' in PATH
    App自动化测试之Appium环境安装(涉及雷电模拟器和真机)
    元素定位工具ChroPath
    Python+Selenium学习笔记19
    Python+Selenium学习笔记18
    Python+Selenium学习笔记17
    Python+Selenium学习笔记16
    Python+Selenium学习笔记14
    Python+Selenium学习笔记15
  • 原文地址:https://www.cnblogs.com/rockniu/p/1224440.html
Copyright © 2011-2022 走看看