面向对象设计原则
来源:互联网 发布: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、迪米特法则:又称为“最少知识原则”,它的定义为:一个软件实体应当尽可能少的与其他实体发生相互作用。尽量少的定义大接口。
- 面向对象设计原则
- 面向对象设计原则
- 面向对象设计原则
- 面向对象设计原则
- 面向对象设计原则
- 面向对象设计原则
- 面向对象设计原则
- 面向对象设计原则
- 面向对象设计原则
- 面向对象设计原则
- 面向对象设计原则
- 面向对象设计原则
- 面向对象设计原则
- 面向对象设计原则
- 面向对象设计原则
- 面向对象设计原则
- 面向对象设计原则
- 面向对象设计原则
- 线段树 hdu5700 区间交
- Caffe中卷基层和全连接层训练参数个数如何确定
- 杂论--更充分地,想尽一切办法地把群众的监督作用发挥出来
- Construct Binary Tree from Preorder and Inorder Traversal (medium)
- JavaScript 加号操作符细节
- 面向对象设计原则
- 简单数据库连接池的原理
- Redis内存优化
- JCEF的编译
- html表单
- pthread_join/pthread_exit的用法解析
- 开源NFV管理器 - OpenStack Tacker介绍 - 2. Tacker DevStack安装配置和操作
- 创建型设计模式
- DataPicker 去掉日历 calendarViewShown="false" 失效解决方法