【建模】面向对象设计原则分析
2013-12-11 16:13
330 查看
4000
一、面向对象三大设计原则
1、针对接口编程,而不是针对实现编程
可以通过派生接口的类实现(Java中常见)来完成,这样无需知道具体的实现。可自顶而上的进行设计,也可以自下而上的进行抽取公共部分。
在C++类中,可将其进行转换处理,起到一个函数转换的作用
2、优先使用对象组合,而不是类继承
这样的话,一个对象就把职责分散开来,交给不同的对象来处理
3、封装变化点【3】
使得尽量修改变化地方的修改,解释如下:
二、五大具体设计原则
1、单一职责原则(SRP—Single Responsibility Principle)【4】、【5】
将一个两个职责接口进行拆分,然后从他们为派生一个公共的接口
2、开放—封闭原则(OCP—Open for extension ,Closed for modification Principle)
对扩展开放,对修改封闭,即加入新的功能时,要不修改原来的组件代码。
3、Liskov替换原则(LSP)
子类必须替换它的基类,其实就是一派生的功能。
4、依赖倒置原则(DIP—Delpendence Inversion Principle)
里面就是Factory Method实现可以做一个解释。
a. 高层模块不依赖于底层模块,两者都依赖于抽象
b. 抽象不应该依赖细节,细节应该依赖抽象。
5、接口隔离原则(ISP—Interface Segregation Principle)【6】
将各种接口分一个类别,然后依赖时,调用各个类别的接口对象
参考:1、面向对象设计模式纵横谈(1)
2、面向对象设计原则六-针对接口编程,而不是针对实现编程
3、浅谈设计模式之精髓---封装变化点
4、单一职责原则—cbf4life
5、设计模式六大原则(1):单一职责原则
6、设计模式六大原则(4):接口隔离原则
7、设计模式与面向对象编程方法的原则
一、面向对象三大设计原则
1、针对接口编程,而不是针对实现编程
可以通过派生接口的类实现(Java中常见)来完成,这样无需知道具体的实现。可自顶而上的进行设计,也可以自下而上的进行抽取公共部分。
public interface A//接口 { public: void Move(); void Fly(); } //分别从这个接口派生类实现
在C++类中,可将其进行转换处理,起到一个函数转换的作用
void Move_base() { Move();//子类的实现 }
2、优先使用对象组合,而不是类继承
这样的话,一个对象就把职责分散开来,交给不同的对象来处理
3、封装变化点【3】
使得尽量修改变化地方的修改,解释如下:
//工厂方法模式 Factory fac=new Factory (); Animal ani=new Dog(); //如果修改为Chicken的话,则不需要修改其他代码,这个是变化的地方 fac.setAnimal( ani); Animal ani1=fac.createInstance(); //在一个函数体内,或者在其他地方 Animal ani2=fac.createInstance();
二、五大具体设计原则
1、单一职责原则(SRP—Single Responsibility Principle)【4】、【5】
将一个两个职责接口进行拆分,然后从他们为派生一个公共的接口
2、开放—封闭原则(OCP—Open for extension ,Closed for modification Principle)
对扩展开放,对修改封闭,即加入新的功能时,要不修改原来的组件代码。
3、Liskov替换原则(LSP)
子类必须替换它的基类,其实就是一派生的功能。
4、依赖倒置原则(DIP—Delpendence Inversion Principle)
里面就是Factory Method实现可以做一个解释。
a. 高层模块不依赖于底层模块,两者都依赖于抽象
b. 抽象不应该依赖细节,细节应该依赖抽象。
5、接口隔离原则(ISP—Interface Segregation Principle)【6】
将各种接口分一个类别,然后依赖时,调用各个类别的接口对象
参考:1、面向对象设计模式纵横谈(1)
2、面向对象设计原则六-针对接口编程,而不是针对实现编程
3、浅谈设计模式之精髓---封装变化点
4、单一职责原则—cbf4life
5、设计模式六大原则(1):单一职责原则
6、设计模式六大原则(4):接口隔离原则
7、设计模式与面向对象编程方法的原则
相关文章推荐
- OOAD&UML_OOAD概述_UML_OO设计原则_OO设计模式_分析阶段静态建模_分析阶段动态建模_设计阶段静态建模_设计阶段动态建模
- Rose与PowerDesigner:建模工具对比分析
- Java设计模式之面向对象设计原则
- 面向对象设计的经验与原则
- 61条面向对象设计的经验原则
- 面向对象建模与数据库建模两种分析设计方法的比较
- 《QUML:量化需求分析与建模》节选之二:一个量化管理项目的一生(1)
- 06需求工程-软件建模与分析阅读笔记之六
- 序列搜索/启动子分析/同源建模(转)
- 面向对象设计原则
- 预备知识:UML和面向对象设计原则
- 分析思维框架:66法则与SQVID原则
- [全程建模]设计模型和UML应用中的实例分析
- 需求分析之六大原则
- 面向对象设计模式与原则
- Accelrys.Materials.Visualizer.v4.2 1CD(材料建模可视化和统计分析工具)
- Java设计模式(一)——面向对象设计原则
- 优秀的系统分析师必读——需求分析20条原则(转载)
- 面向对象建模与数据库建模两种分析设计方法的比较(转载)
- ENode框架Conference案例分析系列之 - 上下文划分和领域建模