设计模式
洪流之源
这个作者很懒,什么都没留下…
展开
-
设计模式系列(2)设计模式的基本原则
设计模式主要是实现代码的高内聚,低耦合。主要有以下原则: 1)开放封闭原则:类的改动是通过增加代码进行的,而不是修改源代码; 2)单一职责原则:类的职责要单一,对外只提供一种功能,而引起类变化的原因都只有一个; 3)依赖倒置原则:依赖于抽象(接口),不要依赖于具体的实现(类),也就是针对接口编程; 4)接口隔离原则:不应该强迫用户依赖它们不需要的接口方法。一个接口应该只对外原创 2017-03-22 20:50:03 · 320 阅读 · 0 评论 -
设计模式系列(12)创建者模式
概念: Builder模式也叫建造者模式或生成器模式,是由GoF提出的32种设计模式中的一种。Builder模式是对象创建模型之一,用来隐藏符合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态创建具有复合属性的对象。 Buidler模式是为对象的创建而设计的模式,创建的是一个复合对象,被创建的对象为一个具有复合属性的复合对象。创建者模式关注对象创建的各部分原创 2017-06-27 09:58:03 · 292 阅读 · 0 评论 -
设计模式系列(11)抽象工厂模式
1.概念 抽象工厂模式是所有形态的工厂模式中最为抽象最为一般性的。抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品具体类型的情况下,能够创建多个产品族的产品对象。备注:工厂模式要么生产香蕉、要么生产苹果、要么生产西红柿;但是不能生产一个产品组。抽象工厂能够生产一个产品组。解释:具体工厂在开闭原则下,能生产香蕉或者苹果或者梨子(产品等级结构)抽象工厂在开闭原创 2017-06-13 15:12:00 · 297 阅读 · 0 评论 -
设计模式系列(9)简单工厂模式
1.什么是简单工厂模式 简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类来负责创建其它类的实例,被创建的实例通常都具有共同的父类。2.模式中包含的角色及其职责1) 工厂(Creator)角色简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外外界直接调用,创建所需要的产品对象。1) 抽象(Product)角色简原创 2017-06-08 11:11:18 · 355 阅读 · 0 评论 -
设计模式系列(10)工厂模式
1.概念 工厂方法模式同样属于类的创建型模式,又被称为多态工厂模式。工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。 核心工厂类不再负责产品的创建,这样核心类称为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象话的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。2.类图角色职责1)抽象工厂(C原创 2017-06-08 14:42:47 · 301 阅读 · 0 评论 -
设计模式系列(7)线程下的懒汉式单例
1.懒汉模式虽然有优点,但是每次调用Getinstance()静态方法时,必须判断NULL == m_instance,使程序开销增大。2.多线程中会导致多个实例的产生,从而导致运行代码不正确以及内存泄露。3.提供释放资源的函数。讨论:这是因为C++中构造函数并不是线程安全的。C++中的构造函数简单来说分为两步:第一步:内存分配第二步:初始化成员变量由于多线程的关系,可原创 2017-04-19 22:02:39 · 306 阅读 · 0 评论 -
设计模式系列(4)迪米特法则形象解释
迪米特法则:一个对象应该对其它对象尽可能少的了解,从而降低各个对象之间的耦合,提高 系统的可维护性。例如在一个程序中,各个模块间相互调用时,通常会提供一个统一的接口来 实现。这样其它模块不需要了解其它模块的内部实现细节,这样当一个模块内部的实现发生改 变时,不会影响其它模块的使用。(黑盒原理)迪比特法则可以用和谋生人说话问题进行说明:原创 2017-03-24 08:38:05 · 509 阅读 · 0 评论 -
设计模式系列(6)饿汉式单例模式
饿汉式单例模式与懒汉式单例模式差别不大,只需要修改很少的代码,改动的代码用红色标注:#include using namespace std;class Singleton{private: Singleton() { m_singler = NULL; m_count = 0; cout << "构造函数 Singlton...do" <原创 2017-03-30 08:51:37 · 334 阅读 · 0 评论 -
设计模式系列(5)懒汉式单例模式
1.概念 单例模式是一种对象创建模式,使用单例模式,可以保证一个类只生成唯一的实例对象。也就是 说,在整个程序空间中,该类只存在一个实例对象。 GoF对单例模式的定义是:保证一个类、只有一个实例存在,同时提供能够对该实例加以访问的全 局访问方法。2.为什么使用单例模式? 在应用系统开发中,我们常常有以下需求: -在多线程之间,比如初始原创 2017-03-25 09:14:12 · 557 阅读 · 0 评论 -
设计模式系列(3)依赖倒转原则实例
实例代码:业务层用计算机代替,计算机使用硬盘#include using namespace std;class HardDisk{public: virtual void work() = 0;};class Memory{public: virtual void work() = 0;};class C原创 2017-03-23 09:09:47 · 500 阅读 · 0 评论 -
设计模式系列(1)设计模式的概念与分类
模式是在一定的问题中解决某一问题的方案,包括三个基本元素---问题,解决方案和环境。也就是在一定的环境下,用固定套路解决问题。设计模式是一套被反复使用、经过分类编目、代码设计经验的总结。 设计模式是软件工程的基石,多态是设计模式的基础,而多态实现的三个条件是:继承,虚函数重写,父类指针或引用指向子类对象。设计模式就是将简单的问题标准化,把环境中的各部分进行抽象、归纳、解耦合。 设计原创 2017-03-21 14:46:08 · 405 阅读 · 0 评论 -
二十三种设计模式及其python实现
本文为博客转载:https://www.cnblogs.com/Liqiongyu/p/5916710.html设计模式是什么?创建型1.Factory Method(工厂方法)2. Abstract Factory(抽象工厂)3. Builder(建造者)4. Prototype(原型)5. Singleton(单例) 结构型6. Adapte...原创 2018-01-19 16:27:14 · 12822 阅读 · 1 评论