简单工厂和单例设计模式浅解
2016-03-04 16:35
197 查看
什么是设计模式?
我们知道《孙子兵法》是行军打仗的战术的书籍。有了好的战术才能将军队现有的战斗力发挥到最大化。而我们编写代码也一样需要“战术”,使用合适的战术能极大地提高编码的效率及程序的性能而且写出的代码也会非常好看!而设计模式就是我们码农的《孙子兵法》!简单工厂
简单工厂通俗的来说就是我们通过传递参数给工厂类的静态方法得到我们想要的类型的对象。比方说我们有一个比萨类培根比萨和奶油比萨都继承自比萨类我们就可以定义一个比萨工厂类给这个类一个静态方法在参数中出入要使用的比萨的种类在方法内部判断比萨的类型并返回给方法的调用方。
注意:方法是静态的,返回值类型是比萨类,通过参数判断是那种比萨!
demo:
//父类 public abstract class Piza { public string name; public abstract void show(); } //子类 public class nailaopiza:Piza { public override void show() { Console.WriteLine("奶酪披萨"); } } //子类 public class peigenpiza:Piza { public override void show() { Console.WriteLine("培根披萨"); } } //工厂类 public class pizagongchang { public static Piza CreatePiza(string type) { Piza piza= null; switch (type) { case "奶酪": piza = new nailaopiza();//创建奶酪比萨 break; case "培根": piza = new peigenpiza();//创建培根比萨 break; default: break; } return piza;//返回对应的比萨 } }
单例模式
单例模式要去一个类只能有一个对象单例设计模式分一下几步完成
在类显示的定义一个私有构造。
定义一个私有,静态的本类类型变量
定义一个共有的静态方法返回第2步定义的静态变量,在方法内部判断静态变量是否为null,如果为null则先示例化此变量再返回,反之直接返回。
demo:
namespace 单利模式 { public class text { private text() { }//定义私有构造 private static text t;//定义私有的静态变量,数据类型是本类类型 public static text createtext() { if (t==null) { t = new text();//如果t为null则调用私有构造示例化t } return t;//将t返回给调用者 } } }
相关文章推荐
- [C++]lambda表达式
- FZU 2092 收集水晶
- AlwaysOn--查看可用性组的首先备份节点
- wap站获取上网用户手机型号的方法 .net的写法
- 10大常见的安全漏洞!你知道吗?
- Web前端面试小记
- 复习篇2016.3.4 16.42复习篇之一(蓝桥杯恶补)
- 加密文件系统eCrypt概述
- 操作系统--处理调度与死锁
- XAlign:用于代码对齐的Xcode插件
- 十、装饰(Decorator)模式 --结构模式(Structural Pattern)
- Java大数练习
- Lua中的面向对象[2]:使用指针
- Synchronized和ThreadLocal使用的比较
- android制作.9png图片
- C++ stringstream的使用 类型转换以及字符分离(功能类似split)
- 图像特征提取2—HOG特征
- viewpager+fragment,类似微信
- Selenium启动Chrome时,加载用户配置文件
- 生成一个随机的范围数