设计模式
JXH_123
这个作者很懒,什么都没留下…
展开
-
工厂方法模式之C++实现
工厂方法模式与简单工厂模式的区别在于:在简单工厂模式中,所有的产品都是有一个工厂创造,这样使得工厂承担了太大的造产品的压力,工厂内部必须考虑所以的产品被造的可能,所以工厂里面会内置switch...case语句来自适应地根据用户的输入自适应地产生产品。而工厂方法模式则克服了这个缺点,该模式对工厂做了进一步的抽象,而继承出更专一的工厂,每个具体的工厂仅仅制造一类产品,这样分工明确,工厂的压力也就不会那么大。原创 2014-07-17 16:26:15 · 797 阅读 · 0 评论 -
建造者模式之C++实现
建造者模式(Builder)也叫生成器模式,我们都知道,如果我们想完成一个复杂产品的创建过程,我们必须分开创建,再组装。不如说我们的自行车,有铁架、车铃、车座、轮胎、钢圈。如果我们需要组装一个自行车,必须有这些东西,从创建者模式的角度分析,我们把自行车视为“产品”,把铁架、车铃、车座...等视为“部件”。而不同的部件的价格和性能也表现不一样,所以我们再组装前必须根据实际情况来选择相应的部件,这个过程我们可以总结为:在选择具体的部件之后进行组装,得到我们预期的自行车。原创 2014-07-18 15:20:39 · 1884 阅读 · 0 评论 -
外观模式之C++实现
在我们学习程序设计时常常会用到模块化设计的思想,这一思想是我们首先把要实现的功能用一个模块表示,当用户想完成某个人物时依次调用对应的函数。然而,如果用户要完成一个很大的任务,则需要调用很大模块函数,这样用户与各个模块打交道就非常频繁了,同时也很容易出错,因为用户与某个具体模块打交道,耦合度相对比较高。而外观模式(Facade)就在此时可以派上用场了。原创 2014-07-18 10:12:43 · 1184 阅读 · 0 评论 -
组合模式之C++实现
组合模式(Composite)也叫部分-整体模式是一种非常实用的设计模式,当我们发现需求中系统体现的是整体与局部的层次关系,并且用户希望将组合对象和单个对象一致性对待,这个时候“组合模式”的作用可以得到淋漓尽致地发挥了。原创 2014-07-20 16:51:17 · 1632 阅读 · 0 评论 -
备忘录模式之C++实现
备忘录模式是一种比较简单的设计模式,该模式很好地体现了一种面向对象的封装思想。该模式的思想是用一个专门的备份类将当前的状态信息保存起来,在整个过程中用户不能直接接触该备份类,为了达到这个目的,需要创建一个管理类,用户对先前的信息进行备份和还原。这样,如果用户想备份当前信息或者还原至前一个状态,我们可以通过该管理类的对象来调用备份函数和还原函数。当然,我们所看到的所有状态都是由一个运行类提供。原创 2014-07-20 11:00:19 · 888 阅读 · 0 评论 -
享元模式之C++实现
享元模式(Flyweight)主要体现在“享”上,即共享。设想这么一种情况,现在有编号为A、B三栋房子,现在外面有9只大熊过来了,编号为1~9。现在规定,编号为1~3的熊只能居住在编号为A的房子中,编号为4~6的大熊只能居住在编号为B的大熊中,编号为7~9的大熊只能居住在编号为C的房子中。加入大熊非常笨,没有受过教育,它们只知道自己住的房子的编号。之所以大熊笨,是因为它们一来就建房子,然后在所建的房子墙上写上自己对应的住房编号。这样到最后的结果必然是:建造了9栋房子,3栋编号为A的房子、3栋编号为B的房子、原创 2014-07-22 13:21:48 · 1544 阅读 · 0 评论