设计模式
吃恩Chen
C++、C#、MFC、Wpf
展开
-
常用的软件设计模式(一)单例模式
单例模式:即一个类只有一个实例,在类里自己创建自己的实例。优点:(1)单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。(2)因为类控制了实例化过程,所以类可以灵活更改实例化过程。尤其是在C++中,每次new都要delete,而是用单例模式可以避免忘记delete造成的内存泄漏,只在本类的内部delete实例就可以了(3)方便对实例进行管理,减少重...原创 2018-09-27 15:50:18 · 686 阅读 · 0 评论 -
常用软件设计模式(五)组合模式
组合模式:将对象组合成树形结构以表示“部分 -整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。优点: 组合模式使得客户端代码可以一致地处理对象和对象容器,无需关系处理的单个对象,还是组合的对象容器。 将”客户代码与复杂的对象容器结构“解耦。 可以更容易地往组合对象中加入新的构件。 缺点: 使得设计更加复杂。客户端需要花更多时间理清类之间的层...原创 2018-10-18 11:24:26 · 1212 阅读 · 0 评论 -
常用的软件设计模式(二)简单工厂模式
刚参加工作的时候,丝毫没有面向对象的思想,所有分支都使用一堆的if...else...,现在回头看以前的代码,着实low。但是只要一心想着进步的人,一定是会总结和反省的,为什么以前的代码出现bug这么难维护,功能扩展那么难,代码难得到复用,过了段时间连自己写的代码都不知道什么意思。都说女孩子逻辑思维比不上男孩子,工作几年并没这种感觉,区别在于总结和分析罢了,只要比别人多一点耐心,多一点总结,一年之...原创 2018-10-16 11:39:55 · 475 阅读 · 0 评论 -
常用软件设计模式(三)工厂方法模式
工厂方法模式:定义一个用于创建对象的接口,让其子类决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。优点:1、一个调用者想创建一个对象,只要知道其名称就可以了 2、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以 3、屏蔽产品的具体实现,克服了简单工厂所违背的开闭原则的缺点,又保持了封装对象创建过程的优点缺点:每次增加一个产品...原创 2018-10-16 15:17:26 · 493 阅读 · 0 评论 -
常用软件设计模式(六)迭代器模式
迭代器模式不常用,很多高级语言都将该模式封装在语言中了,入C#的 foreach in 但是有必要了解一下迭代器模式:提供一个方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。优点: 1、它支持以不同的方式遍历一个聚合对象。 2、迭代器简化了聚合类。 3、在同一个聚合上可以有多个遍历。 4、在...原创 2018-10-19 10:00:16 · 482 阅读 · 0 评论 -
常用软件设计模式(四)备忘录模式
备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态优点:1、给用户提供了一种可以恢复状态的机制,可以使用户能够比较方便地回到某个历史的状态。 2、实现了信息的封装,使得用户不需要关心状态的保存细节。缺点:消耗资源。如果类的成员变量过多,势必会占用比较大的资源,而且每一次保存都会消耗一定的内...原创 2018-10-16 17:17:47 · 310 阅读 · 0 评论 -
常用软件设计模式(七)桥接模式
桥接模式:将抽象部分与实现部分分离,使它们都可以独立的变化。优点:1、抽象和实现的分离。 2、优秀的扩展能力。 3、实现细节对客户透明。缺点:桥接模式的引入会增加系统的理解与设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程。abstract class Implementor{ public abs...原创 2018-10-19 10:55:16 · 514 阅读 · 0 评论