工厂模式
来源:互联网 发布:板式家具算料软件 编辑:程序博客网 时间:2024/06/05 15:08
工厂模式
简介
工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。
工厂方法是一个类的实例化延迟到其子类。
后期对操作扩展时只需要添加实例化接口的方法,不需要修改。
例子
还举简单工厂模式中的例子。
分割名字的方法
classSplitName { privatestring frName, lName; publicstring LName { get { return lName; } set { lName = value; } } publicstring FrName { get { return frName; } set { frName = value; } }}
继承封方法的子类
逗号分割方法
public CommaSplit(string name) { int i = name.IndexOf(","); if (i > 0) { FrName = name.Substring(0, i); LName = name.Substring(i + 1); } else { FrName = name; LName = ""; } }
空格分割方法
classBlankSplit : SplitName { public BlankSplit(string name) { int i = name.IndexOf(" "); if (i > 0) { FrName = name.Substring(0, i); LName= name.Substring(i + 1); } else { FrName = name; LName = ""; } } }
工厂
工厂用于创建分割姓名的对象
接口
interfaceIFactoryFunction { SplitName CreateSplitObject(string name);}
创建逗号分割的对象
classCommaObject : IFactoryFunction { publicSplitName CreateSplitObject(string name) { returnnewCommaSplit(name); } }
空格分割
classBlankObject : IFactoryFunction { publicSplitName CreateSplitObject(string name) { returnnewBlankSplit(name); }}
客户端使用
staticvoid Main(string[] args) { Console.WriteLine("请输入你的姓名"); string inputName = Console.ReadLine(); IFactoryFunction operFactory = newCommaObject();//创建工厂用逗号分割 SplitName splitName =operFactory.CreateSplitObject(inputName);//实例化分割的对象 Console.WriteLine("姓"+splitName.FrName); Console.WriteLine("名"+splitName.LName); Console.ReadKey(true); }
总结
工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的。工厂方法把简单工厂的内部逻辑判断移到了客户端来进行。
0 0
- 工厂模式 -- 工厂方法
- 工厂模式 -- 抽象工厂
- 工厂模式-简单工厂
- 工厂模式-工厂方法
- 工厂模式:静态工厂
- 工厂模式-简单工厂
- 工厂模式-抽象工厂
- 工厂模式-工厂方法
- 工厂 > 工厂方法模式
- 工厂模式-静态工厂
- 工厂模式-抽象工厂
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- KMP算法中next和nextval数组的求解
- delphi int64
- iOS: Autolayout和UITableViewCell的动态高度 (2) – 多样式Cell切换
- 互联网大佬们都在焦虑什么?
- phpcms如何生成地图sitemap静态页面
- 工厂模式
- IOS网络篇2之客户端离线缓存策略(NSURLProtocol)
- apache PyString_FromString: Assertion `str != ((void *)0)' failed. 错误处理
- SourceInsight设置
- Struts2.3.16.1+Hibernate4.3.4+Spring4.0.2 框架整合
- 关于Segmentation fault (core dumped)几个简单问题
- div文字自动换行
- hibernate的几种纯sql的查询方式
- 调用API加载DLL方法打开文本文件及修改标题