学习C#已经差不多五年了,也实现了不少的系统软件,但是总感觉在设计程序的时候没有思路,感觉自己对设计模式的理解还是不够深入,虽然之前也看过23种设计模式,但是如果很久不用的话,时间长了就会忘了,所以看别人的一千遍,不如自己写一遍,因此今天想把自己的理解记录下来。
言归正传,23种设计模式都是基于以下七个原则来设计的,所以先来谈谈所有的设计模式的原则:
1、单一职责原则,所有的类一定要保证职责单一,只应该有一个引起它变化的原因,这样可以降低各个模块之间的耦合,方便后期扩展。
2、开放封闭原则,一个类要对修改说不,应该尽量增加新的类来扩展功能,因为通过修改来扩展功能会导致后面很难维护。
3、里氏替换原则,子类替换父类可以不影响整体的功能。
4、依赖倒置原则,应该面向接口编程,而不是面向过程编程,软件开发之前,根据用户需求,整理相关的软件接口,后面再一一实现。
5、接口隔离原则,这个我觉得有点类似第一条,所有的类和接口,尽量要保证功能单一,不应承载更多的责任。
6、合成复用原则,就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分。新对象通过向这些对象的委派达到复用已用功能的目的。简单地说,就是要尽量使用合成/聚合,尽量不要使用继承。
7、迪米特法则(最少知识原则),一个对象仅仅需要对自己熟悉的对象了解,尽量少的与其它实体发生相互作用,是模块尽量保持独立。