设计模式的学习--(3)工厂方法模式
来源:互联网 发布:淘宝联盟结算时间 编辑:程序博客网 时间:2024/06/05 03:03
工厂方法模式–多态工厂的实现
简单工厂模式虽然简单,但当要引入更多的新产品时,需要对Factory工厂类进行源代码的修改,这违背了开闭原则。工厂方法模式应运而生。
在工厂方法模式中,不再提供一个统一的工厂类,而是针对不同的产品提供不同的工厂类。
工厂方法模式的定义如下:定义一个用于创建对象的的接口,让子类决定将哪一个类进行实例化。工厂方法模式让一个类的实例化延迟到其子类。工厂方法模式又称为“工厂模式”,又可称作为虚拟构造器模式或多态工厂模式。它是一种创建型模式。
具体的做法如下:
工厂方法模式中Factory和具体的产品类是平行的机构,我们来模拟一个制造车的过程:
interface IUnitFactory//部件工厂类的抽象层 { Unit CreateAUnit(); }public abstract class Unit//部件类的抽象层 { public abstract void ShowName(); } public class Lamp:Unit//车灯 { public override void ShowName() { Console.WriteLine("im the lamp"); } } public class LampFactory:IUnitFactory//车灯工厂 { public Unit CreateAUnit() { Console.WriteLine("create a lamp"); return new Lamp(); } }public class Tyre : Unit//轮胎 { public override void ShowName() { Console.WriteLine(" im the tyre"); } } public class TyreFactory:IUnitFactory//轮胎工厂 { public Unit CreateAUnit() { Console.WriteLine("create a tyre"); return new Tyre(); } } class Program { static void Main(string[] args) { IUnitFactory lampFactory=new LampFactory(); IUnitFactory tyreFactory=new TyreFactory(); Unit lamp = lampFactory.CreateAUnit(); Unit tyre = tyreFactory.CreateAUnit(); Console.ReadKey(); } }
工厂方法模式的好处是当有新的产品需求出现时,无须更改源码,直接添加产品类和相应的工厂类即可。
阅读全文
0 0
- 设计模式的学习--(3)工厂方法模式
- 设计模式(3)-工厂方法模式
- 学习设计模式-方法工厂设计模式
- 设计模式学习笔记(3)工厂方法
- 设计模式学习(三)工厂方法
- 设计模式学习--工厂方法
- 设计模式入门学习之工厂模式(工厂方法模式)
- 设计模式入门学习之工厂模式(工厂方法模式)
- 设计模式学习--工厂方法模式
- 设计模式学习----工厂方法模式
- 设计模式 学习之工厂方法模式
- 【设计模式】工厂方法模式学习笔记
- 设计模式学习--工厂方法模式
- 设计模式学习-----工厂方法模式
- 设计模式学习笔记-工厂方法模式
- 设计模式学习—工厂方法模式
- 设计模式学习之---工厂方法模式
- 设计模式学习笔记--工厂方法模式
- [bzoj4152][AMPPZ2014]The Captain dijkstra
- 理解shallow heap 和 retained heap
- 二叉树按层遍历
- java之回调函数
- PAT (Advanced Level) Practise 1087 All Roads Lead to Rome (30)
- 设计模式的学习--(3)工厂方法模式
- ggg
- linux tr命令详解
- 数组转list的两个方法
- 语音识别 声纹识别 音频搜索 视频搜索 广电监控 媒资管理 中文视频搜索
- 用JS制作一个倒计时的按钮
- word2vec
- 教你pc端如何快速进行排名。
- Java学习笔记12——Spring