
设计模式
fly103226
这个作者很懒,什么都没留下…
展开
-
设计模式—工厂模式(Factory Method)
动机(Motivation)在软件系统中,经常面临着创建对象的工作;由于需求的变化,需要创建的对象的具体类型经常变化。如何应对这种变化?如何绕过常规的对象创建方法(new),提供一种“封装机制”来避免客户程序和这种“具体对象创建工作”的紧耦合?模式定义定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使得一个类的实例化延迟(目的:解耦,手段:虚函数)到子...原创 2018-10-26 14:25:28 · 356 阅读 · 1 评论 -
设计模式—Observer/Event(观察者模式)
动机(Motivation)在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系” ——一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而实现软件体系结构的松耦合。模式定义定义对象间的一种一对多(变化)的依赖关系,以便当一个...原创 2018-10-26 09:43:51 · 970 阅读 · 0 评论 -
设计模式—Strategy(策略模式)
动机(Motivation)在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担。如何在运行时根据需要透明地更改对象的算法?将算法与对象本身解耦,从而避免上述问题?模式定义定义一系列算法,把它们一个个封装起来,并且使它们可互相替换(变化)。该模式使得算法可独立于使用它的客户程序(稳定...原创 2018-10-25 20:26:46 · 235 阅读 · 0 评论 -
设计模式—Template Method(模板方法)
动机(Motivation)在软件构建过程中,对于某一项任务,它常常有稳定的整体操作结构,但各个子步骤却有很多改变的需求,或者由于固有的原因(比如框架与应用之间的关系)而无法和任务的整体结构同时实现。如何在确定稳定操作结构的前提下,来灵活应对各个子步骤的变化或者晚期实现需求?模式定义定义一个操作中的算法的骨架 (稳定) ,而将一些步骤延迟 (变化) 到子类中。Template Met...原创 2018-10-25 17:32:59 · 458 阅读 · 1 评论 -
C++设计模式
什么是设计模式“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。——Christopher Alexander深入理解面向对象向下:深入理解三大面向对象机制封装,隐藏内部实现继承,复用现有代码多态,改写对象行为向上: 深刻把握面向对象机制所带来的抽象意义,理解如何使用这些机制来表达现实世界,...原创 2018-10-25 17:32:40 · 327 阅读 · 0 评论