设计模式
chenchen216
这个作者很懒,什么都没留下…
展开
-
设计模式——抽象工厂
抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的。抽象工厂模式可以向客户端提供一个接口, 使得客户端在不指定产品的具体类型的情况下, 能够创建多个产品族的产品对象。 重要区别: 工厂模式:只能生产一个产品。(要么香蕉、 要么苹果) 抽象工厂:可以一下生产一个产品族(里面有很多产品组成) 模式中包含的角色及其职责: 抽象工厂(Creator)角色 抽象工厂模式的核...转载 2019-04-10 10:33:53 · 119 阅读 · 0 评论 -
设计模式基础
用uml表示一个类,类和类的关系,在学习设计模式中十分重要,下面的博客讲的比较详细,我就不转载了直接放链接。 https://blog.csdn.net/aiming66/article/details/78151733 ...原创 2019-04-08 20:43:46 · 147 阅读 · 0 评论 -
设计模式——开闭原则(多态)
在接触设计模式时,遇到了开闭原则,觉得例子写的很不错,便记录下来。 在很多时候,比如在大型公司,我们对于源代码的改动是不现实的,大公司也不会让我们改动源代码,但是如果我们想实现新的功能,我们就需要增加代码即可,这里就需要用到多态,否则我们只改一个类里的内容在实际大型项目中,不太现实。 多态顺序就是:父类有虚函数,子类覆写父类虚函数,利用父类指针或者引用,指向子类对象。 开放封闭原则 (OCP...原创 2019-04-08 21:51:06 · 966 阅读 · 0 评论 -
设计模式——依赖倒置原则
依赖倒置原则 依赖于抽象(接口),不要依赖具体的实现(类), 也就是针对接口编程。 在传统的过程式中,上层依赖于底层,当底层变化,上层也得跟着做出相应的变化。这就是面向过程的思想,弊端就是导致程序的复用性降低并且提高了开发的成本。 而面向对象的开发则很好的解决了这个问题,让用户程序依赖于抽象层,实现层也依赖于抽象层,而抽象层一般不会轻易变化。即使实现变化,只要抽象不变,客户程序就...转载 2019-04-09 09:24:54 · 127 阅读 · 0 评论 -
设计模式——单例模式(Singleton)
单例模式定义: 一种对象创建型模式, 使用单例模式, 可以保证为一个类只生成唯一的实例对象。 也就是说, 在整个程序空间中, 该类只存在一个实例对象。 从结构图可以看出,构造函数是私有的。 为什么需要单例模式: 1、在多个线程之间,比如初始化一次socket资源 2、在整个程序空间使用全局变量,共享资源 3、大规模系统中,为了性能的考虑,需要节省对象的创建时间 ...转载 2019-04-09 12:50:53 · 165 阅读 · 0 评论 -
设计模式——多线程下的懒汉式单例
"懒汉"模式虽然有优点, 但是每次调用 GetInstance()静态方法时, 必须判断NULL == m_instance, 使程序相对开销增大。多线程中会导致多个实例的产生, 从而导致运行代码不正确以及内存的泄露。 对于多线程的问题,我们可以看下面这个例子: #include <iostream> #include <windows.h> using namesp...转载 2019-04-09 13:35:42 · 230 阅读 · 0 评论 -
设计模式——简单工厂模式
静态工厂方法模式。通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 模式中包含的角色及其职责: 1.工厂(Creator) 角色 简单工厂模式的核心, 它负责实现创建所有实例的内部逻辑。 工厂类可以被外界直接调用, 创建所需的产品对象。 2.抽象(Product) 角色 简单工厂模式所创建的所有对象的父类, 它负责描述所有实例所共有的公共接口。 3...转载 2019-04-09 23:05:12 · 115 阅读 · 0 评论 -
设计模式——工厂模式
工厂方法模式同样属于类的创建型模式又被称为多态工厂模式 。 工厂方法模式的意义是定义一个创建产品对象的工厂接口, 将实际创建工作推迟到子类当中。 核心工厂类不再负责产品的创建, 这样核心类成为一个抽象工厂角色, 仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。 抽象工厂(Creator)...转载 2019-04-10 09:32:03 · 105 阅读 · 0 评论