【建模】面向对象设计原则分析

一、面向对象三大设计原则

       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、设计模式与面向对象编程方法的原则

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章