laj0 2014-01-13
软件设计的核心是提高软件的可复用性和可维护性。通常一个软件之所以可复用性和可扩展性差的原因在于设计过于僵硬,过于脆弱,复用率低,粘度过高等原因导致的,这时候需要想办法提高可扩展性,灵活性和可插入性,从而提高软件的可复用性和可维护性。一般可维护性和可复用性不能同时能达到目的,只有遵循一定的设计原则,设计出来的系统才能同时满足可复用性和可维护性。面向对象设计原则主要有如下几条:
1、“开闭”原则(Open-Closed Principle)简称OCP,讲的是一个软件实体应该对扩展开放对修改关闭。
2、里氏代换原则(Liskov Substitution Principle)简称LSP,讲的是任何父类出现的地方都可以被子类代替。
3、依赖倒转原则(Dependency INversion Principle)简称DIP,讲的是要依赖于抽象不要依赖于实现。
4、接口隔离原则(Interface Segregation Principle)简称ISP,讲的是为客户端提供尽可能小的单独的接口,而不是提供大的总接口。
5、组合/聚合服用原则(Composition/Aggregation Principle)简称CARP,讲的是要尽可能使用组合,聚合来达到复用目的而不是利用继承。
6、迪米特法则(Law of Demeter)简称LoD,讲的是一个软件实体应当与尽可能少的其他软件实体发生相互作用。
为什么要在讲设计模式前讲设计原则,是因为设计模式是面向对象设计原则的具体指导,所以有了理论和设计指导我们就可以进入设计模式学习了,设计模式大家常说的有23中,其实现实中要多的多,大概分为三类:创建模式,结构模式和行为模式。