C#工厂模式案例
class JianDanGongChang
{
static void Main(string[] args)
{
Factory factory=new LianXiangFactory();
DianNao dianNao=factory.Create();
dianNao.Print();
}
} public abstract class DianNao
{
public abstract void Print();
} public class LianXiang:DianNao
{
public override void Print()
{
Console.WriteLine("联想电脑");
}
} public class DaiEr:DianNao
{
public override void Print()
{
Console.WriteLine("戴尔电脑");
}
} public abstract class Factory
{
public abstract DianNao Create();
} public class LianXiangFactory:Factory
{
public override DianNao Create()
{
return new LianXiang();
}
} public class DaiErFactory:Factory
{
public override DianNao Create()
{
return new DaiEr();
}
}
C#工厂模式案例的更多相关文章
- Java设计模式(三) 抽象工厂模式
原创文章,同步发自作者个人博客,转载请注明出处 http://www.jasongj.com/design_pattern/abstract_factory/ 抽象工厂模式解决的问题 上文<工厂 ...
- 设计模式(二)——Java简单工厂模式
简单工厂模式 案例: 披萨的项目(要便于披萨种类的扩展,要便于维护) 1)披萨的种类很多(比如 GreekPizz.CheesePizz 等) 2)披萨的制作有 prepare,bake, cut, ...
- java设计模式案例详解:工厂模式
1.简单工厂模式 在不考虑扩展的情况下还是很好用的,其实我们写代码也很经常用到,其主要理解在于传入不同参数则构建不同对象,只有一个工厂,如需添加产品涉及到扩展需要修改比较多的东西,不符合开闭原则,如下 ...
- 【java设计模式】(4)---工厂模式(案例解析)
设计模式之工厂模式 工厂模式分三种:简单工厂模式(也叫静态工厂模式),工厂方法模式(也叫多形性工厂),抽象工厂模式(也叫工具箱)下面会一一举例. 一.概念 1.什么是工厂模式 这种类型的设计模式属于创 ...
- 设计模式 — 简单工厂模式(Simple Factory)
定义:定义一个工厂类,它可以根据参数的不同返回不同类型的实例,被创建的实例通常有公共的父类. 模式类型:创建型模型 Factory(工厂角色):即工厂类,负责实现创建所有产品实例的内部逻辑:工厂类可以 ...
- Net设计模式实例之抽象工厂模式(Abstract Factory Pattern)
一.抽象工厂模式简介(Bref Introduction) 抽象工厂模式(Abstract Factory Pattern),提供一个创建一系列相关或者相互依赖对象的接口,而无需制定他们的具体类.优点 ...
- [Head First设计模式]饺子馆(冬至)中的设计模式——工厂模式
系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ...
- Java设计模式(一) 简单工厂模式不简单
摘要:本文介绍了简单工厂模式的概念,优缺点,实现方式,以及结合Annotation和反射的改良方案(让简单工厂模式不简单).同时介绍了简单工厂模式(未)遵循的OOP原则.最后给出了简单工厂模式在JDB ...
- java 反射的应用 以及通过反射 用到的工厂模式
java反射详解 本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的话,看了也不懂,不过建议大家在看完文章之后,在回过头去看看理论,会有更好的理解. 下面开始正文. [案 ...
随机推荐
- SVN分支创建与合并
SVN分支 一个branch是某个development line(通常是主线也即trunk)的一个拷贝,branch存在的意义在于,在不干扰trunk的情况下,和trunk并行开发,待开发结束后合并 ...
- pgpool-II 高可用搭建
pgpool-II主备流复制的架设1.环境 OS: CentOS release 6.4 (Final)DB: postgresql 9.3.6pgpool服务器: pgpool 172.16.0.2 ...
- vlookup实战_英语单词更新
https://study.163.com/provider/400000000398149/index.htm?share=2&shareId=400000000398149( 欢迎关注博主 ...
- python 日期计算
from datetime import timedelta,datetime import time tdy = datetime.today() tdy = tdy.strftime(" ...
- 简单模拟CO模块
promise方式: // 对co模块的简单模拟 function run(gen){ var g = gen(); function next(data){ var result = g.next( ...
- 单层反查BOM
*&---------------------------------------------------------------------* *& Report YCX_001 * ...
- PHP实现简单留言板
最近学习了下PHP基础,这里做一个简单的留言板,算是对PHP和MySQL的使用做一个整体的练习吧,不遇到问题总感觉学不到东西. 截图如下: 总结: 1>数据库的简单操作,数据库的增删改查: 2. ...
- 【c# 学习笔记】为什么要使用委托
上一章中我们可能会很疑惑,为什么需要委托?为什么不直接在MyMethod方法里直接调用Add方法,反而要实例化一个委托对象来完成调用呢?这岂不是自找麻烦吗? 当然,c#引入委托并不是自找麻烦.委托是c ...
- Vidual Studio vs2013彻底卸载
我的win10 1803 2019年年中升级的,非常后悔,持续不间断的假死状态让人很无奈.又不舍得回退,因为很多保存的隐藏数据. 开始清理系统吧,东西越少性能越好,于是电脑就成了纯净版,甚至连 看到了 ...
- conda换源
装完Anaconda后,建议更新所有的包,因为以后使用很可能会报错. 而更新的时候conda的官方源在美国,不换源就非常蓝瘦,有生之年够呛了. 换源: conda config --add chann ...