C#设计模式--工厂方法模式
0.C#设计模式-简单工厂模式
设计模式:
工厂方法模式(Factory Method Pattern)
介绍:简单工厂模式是要在工厂类中通过数据来做个决策,在工厂类中的多个类中实例化出来其中一个要用到的类,做运算。而工厂方法模式则是他的一个的扩展,不在工厂类中做区分从而创建对应的类,而是把这个选择决策权力交给使用类的用户决定。可扩展性比简单工厂模式要好很多
工厂方法模式类图:
工厂方法模式C#代码举例:
MobilePhone类手机类
1 public abstract class MobilePhone 2 { 3 public abstract void print(); 4 }
Iphone 类 苹果手机类
1 public class Iphone : MobilePhone 2 { 3 public override void print() 4 { 5 Console.WriteLine("我是苹果手机!"); 6 } 7 }
XiaoMI 类 小米手机类
1 public class XiaoMI:MobilePhone 2 { 3 public override void print() 4 { 5 Console.WriteLine("我是小米手机"); 6 } 7 }
SmarTisan类 锤子手机类
1 public class SmarTisan : MobilePhone 2 { 3 public override void print() 4 { 5 Console.WriteLine("我是锤子手机!"); 6 } 7 }
MobilePhoneFactory 类 手机工厂类
1 public abstract class MobilePhoneFactory 2 { 3 public abstract MobilePhone Create(); 4 }
IphoneFactory 类 苹果手机工厂类
1 public class IphoneFactory:MobilePhoneFactory 2 { 3 public override MobilePhone Create() 4 { 5 return new Iphone(); 6 } 7 }
XiaoMiFactory类 小米手机工厂类
1 public class XiaoMiFactory:MobilePhoneFactory 2 { 3 public override MobilePhone Create() 4 { 5 return new XiaoMI(); 6 } 7 }
SmarTisanFactory类 锤子手机工厂类
1 public class SmarTisanFactory:MobilePhoneFactory 2 { 3 public override MobilePhone Create() 4 { 5 return new SmarTisan(); 6 } 7 }
测试
(即使每次增加新的品牌,只需要增加新品牌的类,以及对应工厂即可使用,方便扩展)
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 //创建苹果手机工厂 6 MobilePhoneFactory mobilePhoneFactoryIphone = new IphoneFactory(); 7 //苹果手机工厂创建手机 8 MobilePhone mobilePhoneIphone = mobilePhoneFactoryIphone.Create(); 9 //由苹果工厂创建苹果手机 10 mobilePhoneIphone.print(); 11 12 13 //小米工厂生产小米手机 14 MobilePhoneFactory mobilePhoneFactoryXiaoMi = new XiaoMiFactory(); 15 MobilePhone mobilePhoneXiaoMi = mobilePhoneFactoryXiaoMi.Create(); 16 mobilePhoneXiaoMi.print(); 17 18 19 //锤子手机工厂生产锤子手机 20 MobilePhoneFactory mobilePhoneFactorySmarTisan = new SmarTisanFactory(); 21 MobilePhone mobilePhoneSmarTisan = mobilePhoneFactorySmarTisan.Create(); 22 mobilePhoneSmarTisan.print(); 23 24 Console.Read(); 25 26 } 27 }
运行结果:
源码工程文件
转载于:https://www.cnblogs.com/JiYF/p/6409258.html
C#设计模式--工厂方法模式相关推荐
- 4. 星际争霸之php设计模式--工厂方法模式
题记 ============================================================================== 本php设计模式专辑来源于博客(jy ...
- java 工厂方法_java设计模式-工厂方法模式
1.工厂方法(FactoryMethod)模式的定义 定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中.这满足创建型模式中所要求的"创建与使用相分离" ...
- 设计模式 | 工厂方法模式及典型应用
工厂方法模式 工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定将哪一个类实例化.工厂方法模式让一个类的实例化延迟到其子类. 工厂方法模式又简称为工厂 ...
- python工厂模式 django_python设计模式-工厂方法模式
题目:假设你有一个 pizza 店,功能包括下订单.做 pizza,你的代码会如何写呢? def order_pizza(): pizza = Pizza() pizza.prepare() pizz ...
- 工厂方法模式_1天1个设计模式——工厂方法模式
意图 工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型. 问题 假设你正在开发一款物流管理应用.1.0版本只能支持处理卡车运输,因此大部分的代码都位 ...
- [设计模式] ------ 工厂方法模式
工厂方法模式 手机厂造手机,肥皂厂造肥皂,药品厂造药品. 假设有一大类对象A1,A2,A3,A4-他们都有一个共同的父类A A1可以想成是手机,A2可以想成肥皂- (下面例子的A1Factory就是手 ...
- JAVA设计模式 - 工厂方法模式
工厂方法模式(Factory Pattern) 是一种创建型设计模式 , 它是Java中最常用的设计模式之一 . 1 . 工厂方法模式的定义 定义一个创建对象的接口 , 让子类决定实例化哪一个类 . ...
- Java设计模式—工厂方法模式抽象工厂模式
工厂方法模式与抽象工厂模式都是设计模式中重要而且常见的模式. 工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到其子类. 通用类图如下: 在 ...
- 设计模式 - 工厂方法模式 - 基于 Java 实现
常见和工厂有关的设计模式 和工厂相关的设计模式主要有三种,工厂方法模式,抽象工厂模式: 在前面的博客中介绍了简单工厂模式,本篇博客主要介绍的是工厂方法模式 什么是工厂方法模式 工厂方法模式是简单工厂的 ...
最新文章
- 新基建的内涵、意义和隐忧 ,基于互联网大脑模型的分析
- Javascript中的树结构
- wordcloud库
- 前端学习(2006)vue之电商管理系统电商系统之绘制商品参数的复选框
- Zookeeper JavaApi 增删改查
- Mono 开发 (使用.NET技术的你,绝对不能忽略Mono)
- uigetfile命令的应用
- 建造者2全部岛屿_勇者斗恶龙建造者2空荡岛流程攻略介绍
- 苏宁易购正在“酝酿”下一场蝶变?
- 为什么要用深浅拷贝、什么是深浅拷贝、以及如何实现
- centos6查看运行服务器,centos如何查看端口是否开放_网站服务器运行维护,centos,端口...
- Python 支付宝红包二维码制作步骤分享
- ctf-web入门-php特性
- php接入阿里云OOS
- [转载]关于字体的一些常识
- 用计算机亩换算成平方,平方米亩换算(平方米换算亩计算器)
- GlobalSign 发布了即将要修改代码签名证书的重要通知
- 参加《全流程全要素的研发项目管理》培训记录与心得
- storm DRPC例子
- pareto最优解程序_求多目标优化问题Pareto最优解集的方法