1.java的設計模式可以分為3類:

  • 創建型模式(5種):工廠模式,抽象工廠模式,建造者模式,單例模式,原型模式;
  • 結構型模式(7種):適配器模式,裝飾器模式,代理模式,外觀模式,橋接模式,組合模式和享元模式;
  • 行為型模式(11種):策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式;

2.設計模式遵循的原則有6個:

  • 開閉原則(Open Close Principle):

    對擴展開放,對修改關閉;

  • 里氏替換原則(Liskov Substitution Principle):

     只有當衍生類可以替換掉基類的時候,軟件單元的功能不受影響時,基類才能被真正複用,而衍生類也能夠在基類的基礎上增加新的行為

  • 依賴倒轉原則(Dependence Inversion Principle):

    這是開閉原則的基礎,對接口編程,依賴於抽象而不依賴於具體

  • 接口隔離原則(Interface Segregation Principle):

    使用多個隔離的接口來降低耦合度

  • 迪米特法則(最少知道原則)(Demeter Principle):

       一個實體應該儘量少的與其他實體之間發生相互作用,使得系統功能模式相互獨立

  • 合成複用原則(Composite Reuse Principle):

       原則是儘量使用合成/聚合的方式,而不是使用繼承,繼承原則上破壞了類的封裝性,超類的方法可能會被子類修改