设计模式
张伟杰-Vijay
这个作者很懒,什么都没留下…
展开
-
简单工厂模式和策略模式的比较
代码结构图的区别首先来看一下简单工厂模式: 再看一下策略模式: 看完他们的结构图,是不是有种很相似的感觉?唯一不同的就是 简单工厂类 和 Context类。接下来再看一下代码上有什么区别。简单工厂类和Context类中代码的区别简单工厂类:public class OperationFactory{ public static Operation Crea...原创 2018-06-30 20:51:01 · 14137 阅读 · 28 评论 -
组合模式
什么是组合模式?组合模式:使得用户对单个对象和组合对象的使用具有一致性,使得部分和整体可以被一致对待。组合模式其实就是将单个对象和组合对象抽象出来,让单个对象和组合对象去继承这个抽象类,从而使客户端可以针对抽象接口编程,这样就实现了一致对待。通过抽象的方式,形成一个模式,叫做组合模式,为了可以使代码有更好的灵活可扩展性,符合“开闭原则”。 代码结构//抽象类或接口a...原创 2018-07-23 16:16:30 · 239 阅读 · 22 评论 -
原型模式
什么是原型模式原型模式:通过克隆原型类实例化的对象,从而创建新的对象如何使用让类实现 ICloneable 接口。class Resume : ICloneable{ string name; string sex; string age; public Resume(string name) { this.name...原创 2018-07-12 20:38:54 · 4954 阅读 · 16 评论 -
简单工厂、工厂方法、抽象工厂模式
简单工厂、工厂方法和抽象工厂这三种设计模式都和工厂有关,准确的来说都和对象的创建有关。它们之间有什么区别呢?我认为就是一个逐步改进的过程。简单工厂不论创建哪个对象,都封装在一个简单工厂类中,一对多 优点:将客户端与对象的创建(选择创建哪个对象)分离,去除了客户端对具体产品的依赖 缺点:违背了开闭原则,增加新的类就需要修改简单工厂类,而不是可扩展工厂方法将创建对象的工厂抽象出...原创 2018-07-07 16:46:43 · 255 阅读 · 16 评论 -
建造者模式
建造者模式:将一个复杂对象的创建过程与它的显示分离,用户只需指定需要创建对象的类型,而不用去关心具体的建造过程。将所有构建过程相同的对象抽象出来,通过拓展可以创建不同的表示。 Builder:抽象类,根据产品的创建过程或配件抽象而来,规定了创建产品需要的配件等,可防止具体建造者创建的过程漏下某一步骤。 ConcreteBuilder:具体建造者,继承自Builder类,实现了产品的创建过程...原创 2018-07-13 17:37:36 · 263 阅读 · 14 评论 -
单例模式
单例模式:类只能实例化一次,并且外部只有一个入口去访问该实例。 总结一下就是:受控访问+实例一次。用在哪比如一些窗体应用程序中,我们希望某些窗体要么不出现,如果出现只能展示一个窗体。还有比如 windows 操作系统的任务管理器,它也只能展示一个窗口。再比如游戏中人物属性界面,不论我们点击多少次,它都展示给用户一个界面。所以单例模式,它适用于某些类要求只能实例化一次的情况。还有就...原创 2018-07-20 17:42:10 · 222 阅读 · 22 评论