设计模式
i_chaoren
这个作者很懒,什么都没留下…
展开
-
Observer/Event观察者模式(C++)
动机: 在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系”--一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而实现软件体系结构的松耦合。松耦合可以体现在下面几种情况:1)一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这些方...原创 2018-06-03 22:46:45 · 1923 阅读 · 1 评论 -
C++11下的单例模式
动机:在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性、以及良好的效率。 绕过常规的构造器,提供一种机制来保证一个类只有一个实例。定义:保证一个类仅有一个实例,并提供一个该实例的全局访问点。1、C++11中可以保证static变量时多线程安全的,在底层实现了加锁操作,所以不需要像以前那样自己写加锁操作。2、由于是一个static对象,...原创 2018-05-25 13:29:15 · 8358 阅读 · 2 评论 -
Template Method 模板方法
Template Method是一种组件协作模式:通过晚绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用的模式。动机:在软件构建过程中,对于某一项任务,它常常有稳定的整体操作结构,但各个子步骤却有很多改变的需求,或者由于固有的原因而无法和任务的整体结构同时实现。如何在确定稳定操作结构的前提下,来灵活应对各个子步骤的变化或者晚期实现需求。定义:定义一个操作中的算法的骨架(稳定),而将一些...原创 2018-06-02 11:01:01 · 749 阅读 · 0 评论 -
Simple Factory Pattern--简单工厂模式
介绍:简单工厂模式不能说是一个设计模式,说它是一种编程习惯可能更恰当些。因为它至少不是Gof23种设计模式之一。但它在实际的编程中经常被用到,而且思想也非常简单,可以说是工厂方法模式的一个引导。动机:当你需要什么,只需要传入一个正确的参数,就可以获取你所需要的对象,而无须知道其创建细节。定义:简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Facto...原创 2018-06-09 17:19:23 · 424 阅读 · 0 评论 -
Bridge桥模式
“单一职责”模式:在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同事充斥着重复代码,这时候的关键是划分责任。动机由于某些类型的固有的实现逻辑,使得它们具有两个纬度的变化,乃至多个纬度的变化。如何应对这种"多维度的变化"?如何利用面向对象技术来使得类型可以轻松地沿着两个乃至多个方向变化,而不引入额外的复杂度?处理多维度变化的场景...原创 2019-05-02 23:32:40 · 938 阅读 · 0 评论