一、基本概念
OO(Object Oriented,面向对象)原则是我们的目标,而设计模式(Design Pattern)是我们的做法。为了交互对象之间的松耦合设计而努力。 良好的OO设计必须具备可复用、可扩充、可维护三个特性。
OO基本概念
OO基本概念:抽象、封装、继承、多态。
- 抽象:把有共同属性或方法的抽象成一个类
- 封装:把过程和数据隐藏起来,对数据的访问只能通过已定义的方法
- 继承:派生类拥有父类的数据、方法,即子承父业
- 多态:同一操作(方法)作用于不同的对象时,可以有不同的解释,产生不同的执行结果。
UML
标准建模语言(Unified Modeling Language, UML)是一个支持模型化和软件系统开发的图形化语言。组合(有时候叫聚合)是将一个对象放到另外一个对象里(组合),它是一种HAS-A的关系。
二、九大设计原则
- 封装变化:找出应用中肯能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
- 针对接口编程,而不是针对实现编程。
- 多用组合,少用继承(当你将两个类结合起来使用,这就是组合)。
- 为了交互对象之间的松耦合设计而努力。
- 开放-关闭原则:类应该对扩展开放,对修改关闭。
- 依赖倒置原则(Dependency Inversion Principle):要依赖抽象,不要依赖具体类。
这个原则有一些指导方针,避免在OO设计中违反依赖倒置原则:
1、变量不可以持有具体类的引用
2、不要让类派生自具体类
3、不要覆盖基类中已实现的方法 - 最少知识(Least Knowledge)原则:只和你的密友谈话。
这个原则提供了一些方针:就任何对象而言,在该对象的方法内,我们只应该调用属于以下范围的方 法:
1、该对象本身
2、被当做方法的参数而传递进来的对象
3、此方法所创建或实例化的任何对象
4、对象的任何组件(HAS-A)关系 - 好莱坞原则:别调用我们,我们会调用你。
- 单一责任:一个类应该只有一个引起变化的原因。
这些原则应该尽量达到,而不是随时都要遵循这些原则。
内聚(cohesion)用来衡量一个类或模块紧密得达到单一目的或责任。当一个模块或一个类被设计成只支持一组相关的功能时,我们说它具有高内聚,反之,当被设计成只支持一组不相关的功能时,我们说它具有低内聚。