设计模式

设计模式基本知识

设计模式,指的是软件工程领域,人们为了解决某类软件设计开发的重复问题而总结出来的代码设计经验。

为什么要使用设计模式?

1.避免重复劳动,提高设计和开发效率.

2.设计模式提供了一套通用的设计语言,方便开发人员沟通交流.

设计原则七大原则

1.单一职责原则: 一个类只负责一项职责.

2.开放-关闭原则: 软件实体可以被扩展但不可以被修改.

3.里氏替换原则: 派生类要遵守父类设计约束,不可对非抽象方法随意修改.

4.依赖倒转原则: 抽象不应依赖细节,细节依赖于抽象.

5.接口隔离原则: 类的依赖应尽可能简单.

6.迪米特法则: 尽量少地暴露类的设计细节.

7.组合/聚合复用原则: 尽量使用组合/聚合.继承会破坏封装性.

单例模式(懒汉模式、饿汉模式)

目的保证该类的实例唯一性.--保证该类实例只有一个.

懒汉模式

单例实例在使用时才创建.

饿汉模式是线程不安全的,如果两线程同一时刻调用接口获得实例就有可能会创建两个实例.

解决办法1.在创建实例时加锁.使创建实例的过程带有互斥特性.

解决办法2.C++11内部静态变量的懒汉单例.

饿汉模式

饿汉模式,指系统一运行,就初始化创建实例,当需要时,直接调用即可。缺点,正是由于把实例对象放到堆内存中,这样应用一加载就会看到对应实例,极大浪费内存。

单例模式线程安全问题

工厂模式

定一个创建对象的接口,让子类自己决定实例化哪一个类.

观察者模式

多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。