文档章节

C# 设计模式-工厂模式(Factory)

 坚持-追求-圆梦
发布于 2016/04/12 21:35
字数 205
阅读 8
收藏 0

1、工厂模式

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();  
        }
    }
}

运行结果:

截图20160127101926005

© 著作权归作者所有

粉丝 0
博文 11
码字总数 8845
作品 0
南京
私信 提问
设计模式之抽象工厂模式(创建型)

模式定义 抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。 模式角色 抽象...

smileNicky
01/01
0
0
Design Patterns In FE --- 工厂模式

示例代码地址: github.com/FatGe/Desig… 工厂模式 工厂,是构造方法的抽象,用来实现不同的分配方案。它所涉及三类模式,简单工厂模式、工厂方法模式、抽象工厂模式本质上都是为了实例化。...

Yzz
08/06
0
0
23种设计模式(3):抽象工厂模式

定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。 类型:创建类模式 类图: 抽象工厂模式与工厂方法模式的区别 抽象工厂模式是工厂方法模式的升级版本,他用来...

LCZ777
2014/07/05
118
0
设计模式: Java中的工厂设计模式

原文链接 https://github.com/shellhub/blog/issues/22 前言 工厂设计模式(Factory Design Pattern)属于创建模式之一,工厂设计模式在JDK,Spring,Stuts被广泛使用 当一个类或者接口有多个子类...

shellhub
2018/08/22
0
0
EasyToLearnDesignPattern

简单上手设计模式 GITHUB:https://github.com/Fisher-Joe/EasyToLearnDesignPattern 本文旨在使用最简单的语言,最简单的代码让人学习设计模式(最起码是我) 说明: 本文的所有内容都是基于...

芝麻开门
04/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
159
4
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
5
0
Spring Boot + Mybatis-Plus 集成与使用(二)

前言: 本章节介绍MyBatis-Puls的CRUD使用。在开始之前,先简单讲解下上章节关于Spring Boot是如何自动配置MyBatis-Plus。 一、自动配置 当Spring Boot应用从主方法main()启动后,首先加载S...

伴学编程
昨天
8
0
用最通俗的方法讲spring [一] ──── AOP

@[TOC](用最通俗的方法讲spring [一] ──── AOP) 写这个系列的目的(可以跳过不看) 自己写这个系列的目的,是因为自己是个比较笨的人,我曾一度怀疑自己的智商不适合干编程这个行业.因为在我...

小贼贼子
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部