面向对象设计原则

来源:互联网 发布:caxa数控车床编程软件 编辑:程序博客网 时间:2024/06/07 18:14

☆首要标准:1、满足软件的功能效果。2、满足软件功能需求的设计不一定就是好的设计


☆好的设计:1、可读性:软件的设计文档是否轻易被其他的程序员理解。可读性插的设计会给大型软件的开发和维护过程带来严重的危害。

2、可复用性 :软件系统的架构 、类、组件等单元能否很容易被项目的其他部分或者其他项目复用。

3、可扩展性:软件面对需求变化时,功能或性能扩展的难易程度。

4、可维护性:软件维护(主要是指软件错误的修改、遗漏功能的添加等)的难易程度。

上面四个标准太抽象,无法考量 : 内聚度 耦合度。


☆内聚度:表示一个应用程序的dangerous单元所负责的任务数量和多样性。内聚与单个类或者单个方法单元相关。


☆耦合度:表示类之间关系的紧密程度。


☆ “ 高类聚、低耦合”是所有优秀软件的共同特征。


☆1、单一职责原则:类的职责要单一,不能讲太多的职责放在一个类中。

2、开闭原则:软件实体对扩展是开放的,但对修改是关闭的。指一个如那件实体(类、模块、方法等)  3、依赖倒转原则:简称DIP,是指将两个模块之间的依赖关系倒置为依赖抽象类或接口。具体有两层含义:①:高层模块不应该依赖于底层模块,二者都应该依赖于抽象;②:抽象不应该依赖于细节,细节应该依赖于抽象。分层的时候,低层设计接口或者抽象类与高层进行绑定,遵循的是依赖倒转原则。

 4、组合/聚合复用原则(Composite/Aggregation Reuse Principle,CARP)是指要尽量使用组合/聚合而非继承来达到复用的目的。另一个解释是在一个新的对象中使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象委托功能达到复用这些对象的的。

组合/聚合复用好处:1)、新对象存取成分对象的唯一方法是通过成分对象的接口。2)、这种对象复用是黑箱复用,因为成分对象的内部实现细节对于新的对象使看不见的。3)、这种复用所用的依赖更少。4)、新对象可以在运行的时候动态的引用于成分对象类型相同的对象。

继承复用的有点:1)、新的实现较为容易。2)、修改或者扩展继承而来的实现比较容易。 缺点:1)、继承复用破坏包装。 2)、超类的实现发生了改变,子类的实现也不得不改变。3)、超类继承而来的是静态的,不可能在运行时间内发生改变。因此没有足够的灵活性。


 5、接口隔离原则:是指客户不应该依赖它们用不到的方法,只给每个酷虎它所需要的接口。换句话说,就是不能强迫用户去依赖那些他们不适用的接口。


6、迪米特法则:又称为“最少知识原则”,它的定义为:一个软件实体应当尽可能少的与其他实体发生相互作用。尽量少的定义大接口。

 

 

0 0
原创粉丝点击