———【设计模式】
lrgeory
专注
展开
-
简单工厂模式
对于许多初级编程爱好者来说,代码的质量只要实现功能即可。但随着深入的学习,由“代码无错便是优"的编程思想,开始注意代码的规范,又开始学习了面向对象编程。这三种思想可真是境界越来越高,better and better!那么面向对象编程,好在哪里呢?可维护、可复用、可扩展、灵活性好。是面向对象编程的特点。学习了面向对象编程思想,代码开始考虑通过封装、继承、多态把程序耦合性降低,设计模式的使用使得原创 2016-05-28 15:11:44 · 453 阅读 · 20 评论 -
备忘录模式(Memento)
备忘录(Memento) 在不破坏封装的前提,捕获并保存一个对象的状态。这样根据需要可以恢复到原先保存的状态 缺点:在资源消耗上 ,备忘录对象会非常耗内存。使用方法Memento类中,都是需要保存的属性。发起者Originateor对象,保存进度到管理者Caretaker的Memento属性中。以方便管理者恢复进度。实例——恢复游戏进度原创 2016-06-18 16:30:03 · 474 阅读 · 15 评论 -
适配器模式(Adapter)
适配器模式(Adapter) 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的类可以一起工作。何时使用适配器模式?系统的数据和行为都正确,但接口不符时,我们应该考虑用适配器。适配器的应用 在.NET中有一个类库已经实现的适配器——DataAdapter。用作DataS原创 2016-06-18 09:20:18 · 523 阅读 · 15 评论 -
状态模式(state)
状态模式(state)当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类 。原创 2016-06-17 16:49:16 · 444 阅读 · 9 评论 -
简单工厂VS工厂方法VS抽象工厂
抽象工厂模式(Abstract Factory) 提供一个创建一系列相关或相互依赖的接口,而无需指定它们具体的类。工厂方法模式(Factory Method) 定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法是一个类的实例化延迟到子类。简单工厂模式 用单独的一个类来做创造实例的过程。 实例比较:用户类:User类原创 2016-06-15 12:46:07 · 417 阅读 · 8 评论 -
单例模式(Singleton)
单例模式(Singleton) 保证一个类仅有一个实例,提供一个访问它的全局访问点。1.饿汉式单例类 静态初始化的方式:自己被加载时就将自己实例化。所有要提前占用系统资源 C#与公共语言运行库提供。Singleton类: public sealed class Singleton //阻止派生 {原创 2016-06-26 17:19:52 · 489 阅读 · 29 评论 -
代理模式
代理模式?(proxy)为其他对象提供一种代理以控制对这个对象的访问。应用场合?一,远程代理,为对象在不同地址空间提供局部代表。WebService在.NET的应用。二,虚拟代理,存放实例化需要时间的对象。HTML网页的图片显示过程三,安全代理,控制访问权限四,智能指引,调用对象时,代理处理另外一些事。代理模式结构图实例:代理和追求者分别继承于送礼物接口原创 2016-06-05 17:42:58 · 345 阅读 · 2 评论 -
装饰模式
装饰模式?装饰模式是为已有功能动态添加功能 的一种方式什么时候用装饰模式?当系统需要新功能的时候,向旧类添加新的代码。这些新代码通常装饰了原有类的核心职责或主要行为。装饰模式提供了一个非常好的解决方案:把装饰功能放到类中,让这个类包装它要装饰的对象。因此当 需要执行特殊行为时,客户代码可以有选择的使用装饰功能包装对象了。装饰模式的优点总结下:把类中的装饰功能从类中搬移去除,简化原创 2016-06-05 16:42:44 · 420 阅读 · 5 评论 -
外观模式VS事件委托
观察者模式? 又叫发布-订阅(Publish/Subscribe)模式,当一个对象的改变需要同时改变其它对象的时候,考虑用观察者模式。观察者模式的不足? (1)‘抽象通知者’依赖于‘抽象观察者’(2)观察者的方法相同事件委托? 委托的实例是一个具体的函数。事件委托VS观察者模式? (1)‘抽象通知者’不原创 2016-06-09 17:20:31 · 363 阅读 · 8 评论 -
迭代器模式(Iterator)
迭代器模式(Iterator)提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 一.NET应用: .NET框架的迭代器已经为你准备好了接口。去实现就好买车票实例代码实现: IEumerator支持对非泛型集合的简单迭代接口 public interface IEumerator { object原创 2016-06-25 15:32:22 · 456 阅读 · 21 评论 -
开胃小菜—面向对象基础
一、类与实例对象:一个自包含的实体,用一组可识别的特性和行为来标识。面向对象编程(Object—Oriented Programming)类 :具有相同属性和功能的对象的抽象的集合。类名称首字母和各单词首字母要大写。二、构造方法构造方法:又叫构造函数。其实对类进行初始化。构造方法与类同名,无返回值,也不需要Void,在new时调用。所有的类都有构造方法,比如:Cat cat原创 2016-05-22 15:29:10 · 431 阅读 · 24 评论 -
策略模式
设计一款商场收银软件,营业员根据客户所购买商品的单价和数量,向客户收费。那么如何用策略模式实现呢? 策略模式(Strategy):它定义了算法家族,分别封装起来,让它们之间可以互相替换 。此模式让算法的变化,不会影响到使用算法的客户。策略模式结构图 商场收银系统策略图代码实现CashContext类。其它类省略…… class Ca原创 2016-05-28 18:01:33 · 490 阅读 · 25 评论 -
组合模式(Composite)—分公司与总部
组合模式(Composite) 将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。原创 2016-06-19 10:12:22 · 1049 阅读 · 20 评论