Chinaunix首页 | 论坛 | 博客
  • 博客访问: 260727
  • 博文数量: 84
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 927
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-06 23:00
个人简介

growing

文章分类

全部博文(84)

文章存档

2017年(6)

2016年(61)

2015年(17)

我的朋友

分类: C/C++

2016-05-20 17:51:51

1.单一职责原则
对一个类而言,就只有一个引起它变化的原因。承担的职责越多,被复用的可能性就越小。将不同的职责封装在不同的类中。
2.开闭原则
一句话:对扩展开放,对修改关闭。
3.里氏代换原则
所有引用的父类的地方能够透明的使用其子类的对象。
所以,尽量将一些需要扩展的/存在变化的类设计为抽象类或接口,作为父类。这样的话,如果需要对类的行为进行修改,可扩展新的子类。
4.依赖倒转原则
针对接口编程,而不是针对实现编程。
尽量的引入抽象层,将具体的类写在配置文件中,改变时只需要对抽象层进行扩展,修改配置文件即可。不改其源代码,符合开闭原则 。
5.接口隔离原则
一句话:各干其事、互相独立
6.合成复用原则
尽量多使用对象组合,少用继承。
一般,HAS-A用组合或聚合,IS-A再用继承。
7.迪米特法则
 
一句话:高内聚,松耦合

二、设计模式之 创建型模式

1.简单工厂模式
  系统根据所传入的参数来动态决定创建哪个产品实例。
缺点:被创建的父类会很累,使用频繁,一旦不能正常工作,整个工厂都会被影响。修改时也会违反开闭原则。

看下面这个例子,传入什么水果他就返回什么水果,当要的水果很多时,水果这个厂会很累的。


2.工厂方法模式

为了不让爸爸(父类)那么累,将类的实例化延迟到子类中完成,子类负责生产具体对象。如图:

缺点 :在添加新品时,需要编入新的具体产品并提供与之对应的工厂类,这样会增加类的个数,增加系统开销。

3.抽象工厂模式

再强化一点。

由孙子才造了苹果和葡萄。这样增加新的产品族很容易,只需要加一个新的工厂,但是要修改抽象接口和已有的具体工厂,这个特点被称为 开闭原则的倾斜性。它以一种倾斜的方式来增加新的产品。

4.建造者模式
一句话:一步一步创建一个复杂的对象。使同样的创建过程可以创建不同的表示。
就像玩游戏的时候造一个人物,先选脸,再选衣服,再选裤子。一个完整的人物就创建好啦。

5.原型模式
通过拷贝原型来创建新的对象。用于有一个对象要被频繁创建的场景,通过复制这个对象来创建出更多的同类型对象。

6.单例模式

(1
一个类只能有一个实例(通过把构造设为私有来实现
(2)必须自行创建这个实例(有懒汉式单例和饿汉式单例,懒是在调用getInstance()时才创建,饿是在类加载时就创建好了
(3)必须自行向整个系统提供这个实例

阅读(1987) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~