zoukankan      html  css  js  c++  java
  • C# 设计模式-工厂模式(Factory)

    factory从若干个可能类创建对象。

    例如:如果创建一个通信类接口,并有多种实现方式,可以使用factory创建一个实现该接口的对象,factory可以根据我们的选择,来创建适合的对象。

    复制代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Timers;
    
    namespace Demo
    {
        
        public interface ICommunication
        {
            bool Send(object data);
        }
    
        public class Serial:ICommunication
        {
            public bool Send(object data)
            {
                Console.WriteLine("通过串口发送一个数据");
                return true;
            }
        }
    
        public class Lan:ICommunication
        {
            public bool Send(object data)
            {
                Console.WriteLine("通过网口发送一个数据");
                return true;
            }
        }
    
        public class CommunicationFactory
        {
            public ICommunication CreateCommunicationFactory(string style)
            {
                switch(style)
                {
                    case "Serial":
                        return new Serial();
                    case "Lan":
                        return new Lan();
                }
                return null;
            }
        }
    
        class Program
        {  
            static void Main(string[] args)
            {
                CommunicationFactory factory = new CommunicationFactory();
                Console.WriteLine("请输入通信类型:Lan、Serial");
                string input = Console.ReadLine();
                object data = new object();
                factory.CreateCommunicationFactory(input).Send(data);
                Console.ReadKey();  
            }
        }
    }
    复制代码
  • 相关阅读:
    【BZOJ 1370】 团伙
    【BZOJ 1590】 Secret Message
    【BZOJ 2288】 生日礼物
    【POJ 3630】 Phone List
    【BZOJ 1398】 Necklace
    platform驱动之probe函数
    linux输入子系统之按键驱动
    linux输入子系统概念介绍
    操盘策略:KDJ三线合一 必定孕育大牛股
    nandflash裸机程序分析
  • 原文地址:https://www.cnblogs.com/albertjin/p/6834235.html
Copyright © 2011-2022 走看看