![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
liufei_learning
这个作者很懒,什么都没留下…
展开
-
设计模式(二)--策略模式(1)
<br /> <br />策略模式(Strategy) :<br />它定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。<br /> <br />结构图:<br /> <br /><br /> <br /> <br />//Strategy抽象类,定义所有支持的算法的公共接口。class Strategy{public: Strategy(){}; //算法方法 virtual void AlgorithmInterface(){}原创 2010-12-07 22:18:00 · 1181 阅读 · 0 评论 -
设计模式(三)--装饰者模式(2)
装饰者模式(Decorator)示例例子改编自《设计者模式解析(第二版)》214页,人民邮电出版社 意图:动态的给一个对象添加职责;即提供了“即插即用”方法,不用重新编译已有部分。 问题:要使用的对象将执行所需的基本功能。但是,可能需要为这个对像添加某些功能,这些附加的功能可能发生在对象的基本功能之前或之后。解决方案:可以无需创建子类而扩展一个对象的功能 优点:类的层次结构大小和复杂度有了很大程度的降低 缺点:1)如果装饰者本身是被装饰的,那么访问装饰模式中引进的特性将是非常困难的甚至是危险的。2)系统对装转载 2011-01-02 23:14:00 · 710 阅读 · 0 评论 -
设计模式(三)--装饰者模式(1)
<br /> <br />装饰者模式<br />定义:装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。<br /> <br />类图:<br /><br /> <br />适用范围:<br />1、基础类和应用类结构相同(或有共用的方法体);<br />2、应用类数量繁多,并有可能大量增加;<br />3、可以通过用应用类覆盖上一应用类(或基础类)的方式;<br />4、覆盖之后,只需访问最后覆盖类,即完成整个全类的调用。<br /> <br />特点: <br />转载 2011-01-02 23:12:00 · 749 阅读 · 0 评论 -
设计模式(四)--单例模式(1)
C++编程语言是一个应用广泛的计算机应用语言,它功能强大,在一定程度上大大提高了程序开发效率。C++单例模式也称为单件模式、单子模式。使用单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出等。单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做到这一点,但这样的代码显得很不优雅。定义一个单例类,原创 2010-10-27 16:50:00 · 781 阅读 · 0 评论 -
设计模式(一)--简单工厂模式(1)
/** * 简单工厂模式 * QS:请用C++,JAVA,C#任意一种以面向对象语言实现一个计算器控制台程序:要求输入2个数和运算符号,得到结果 * 第一次程序 * @author xangqun * */public class Program { /** * PS: * 用a,b,c,d这样的命名是非常不规范的 * 判断分支(4个if)这样的写法,意味着每原创 2010-12-06 09:23:00 · 975 阅读 · 0 评论 -
设计模式(四)--单例模式(2)
概要 单例模式是最简单的设计模式之一,但是对于Java的开发者来说,它却有很多缺陷。在本月的专栏中,David Geary探讨了单例模式以及在面对多线程(multithreading)、类装载器(classloaders)和序列化(serialization)时如何处理这些缺陷。单例模式适合于一个类只有一个实例的情况,比如窗口管理器,打印缓冲池和文件系统,它们都是原型的例子。典型的转载 2010-10-27 16:54:00 · 568 阅读 · 0 评论