Java設計原則

1、OO設計基礎java

一、封裝編程

二、繼承編碼

三、多態spa

四、抽象設計

2、OO設計原則code

一、找出應用中須要變化之處,讓它們獨立出來,不要和那些不須要變化的代碼混在一處。對象

二、針對接口編程,而不是針對實現編程。繼承

針對接口編程,即「針對超類型編程」。針對接口編程,關鍵就在於多態。利用多態,程序能夠針對超類型編程,不會被綁死在超類型的行爲上。接口

示例:有一個抽象類Animal,有兩個具體的實現(Dog與Cat)繼承Animal。get

針對實現編程:

Dog d = new Dog();
d.bark();

針對接口/超類型編程:

Animal a = new Dog();
a.makeSound();

更進一步,子類實例化的動做再也不須要在代碼中硬編碼,而是在運行時才指定具體的對象:

a = getAnimal();
a.makeSound();

三、多用組合,少用繼承。

四、爲了交互對象之間的鬆耦合設計而努力。

五、開放-關閉原則:類應該對擴展開放,對修改關閉。

      應用該原則時,應該把注意力集中在設計中最有可能改變的地方,而後應用開放-關閉原則。  

六、依賴倒置原則

      要依賴抽象,不要依賴具體類。

      這個原則看上去很像「針對接口編程,而不是針對實現編程」,然而這裏更強調抽象。這個原則說明了:不能讓高層組件依賴低層組件,並且無論是高層仍是低層組件,二者都應該依賴於抽象。所謂「高層」組件,是由其餘低層組件定義其行爲的類。例如,PizzaStore是個高層組件,由於它的行爲是由比薩定義的:Pizza建立全部不一樣的比薩對象,準備、烘烤、切片、裝盒;而比薩自己屬於低層組件。    

       下面的指導方針,能幫助咱們避免在OO設計中違反依賴倒置原則:

        1⃣️  變量不能夠持有具體類的引用。若是使用new,就會持有具體類的引用。你能夠改用工廠來避開這樣的作法。

        2⃣️  不要讓類派生自具體類。若是派生自具體類,就會依賴具體類。請派生自一個抽象(接口或抽象類)。

        3⃣️  不要覆蓋基類中已實現的方法。若是覆蓋基類已實現的方法,那麼你的基類就不是一個真正適合被繼承的抽象。基類中已實現的方法,應該由全部的子類共享。

        咱們應該儘可能達到這個原則,而不是隨時都要遵循這個原則。咱們都很清楚,任何Java成勳都有違反這些指導方針的地方。        

七、"最少知識" 原則

        定義:最少知識原則:只和你的密友談話。

        原則初衷:但願咱們在設計中,不要讓太多的類耦合在一塊兒,省得修改系統中的一部分,會影響到其餘部分。

        該原則提供了一些方針:

                就職何對象而言,在該對象的方法內,咱們只應該調用屬於如下範圍的方法:1⃣️  該對象自己 2⃣️  被看成方法的參數而傳遞進來的對象 3⃣️  此方法所建立或實例化的任何對象  4⃣️  對象的任          何組件

//未採用該原則
  public float getTemp() {
    Thermometer thermometer = station.getThermometer();
    return thermometer.getTemperature();
  }
//採用該原則
  public float getTemp() {
    return station.getTemperature();
  }
相關文章
相關標籤/搜索