java中javaBean規範、常見的設計模式和設計原則

1.JavaBean規範

JavaBean本質上就是一種習慣性的編程風格,並不是絕對的編程規則或者語法要求,通常的習慣如下:

   (1)要求滿足JavaBean規範的類必須放在一個包中。
   (2)要求滿足JavaBean規範的類必須有無參構造方法。
   (3)要求滿足JavaBean規範類中的成員變量都是私有的。
   (4)要求滿足JavaBean規範類中提供公有的getset方法。
   (5)要求滿足JavaBean規範的類支持序列化接口。

2.常用的設計原則

2.1 常用的設計原則

開閉原則

開閉原則(OCP)- 對擴展開放,對修改關閉
- 實現熱插拔的效果。
- 爲了軟件的擴展性比較好,易於維護和升級。
如:
class Person{}
class SubPerson extends Person{}

里氏代換原則

里氏代換原則(LSP)- 任何父類可以出現的地方,子類一定可以出現。
- 子類 is a 父類。
如:
class Shape{}
class Rect extends Shape{}
void draw(Shape s){ … …}
draw(new Rect());

依賴倒轉原則

依賴倒轉原則(DIP)- 儘量依賴於抽象類,而不是具體實現類。
- 對子類具有強制性和規範性。
如:
abstract class Person{ void show(); }
class Student extends Person{ void show(){} }

接口隔離原則

接口隔離原則(ISP) - 儘量依賴於小接口,而不是大接口。
- 爲了升級和維護方便。
如:
interface RunAnimal{
void run(); } interface FlyAnimal{
void fly(); }

class Dog implements RunAnimal{
void run(){ …} } class Bird implements FlyAnimal{
void fly(){ … } }

迪米特法則

迪米特法則(DP)
- 一個實體應當儘量少與其他實體之間發生相互作用,使得系統功能模塊相對獨立
- 高內聚,低耦合。
- 內聚就是指將一個實體的功能儘量聚集在該實體的內部。
- 耦合就是指一個實體與其他實體之間的關聯度。

合成複用原則

合成複用原則(CRP)- 儘量使用合成的方式,而不是繼承。
如: class A{ void show(){ …} …
} class B extends A{
}

class B{
A a; }

3.常用的設計模式

3.1 概念
被人反覆使用 多數人知曉的 經過分類的 代碼設計經驗的總結
3.2 分類
創建模式 工廠模式 抽象工廠模式 單例模式
結構模式 裝飾器模式 代理模式 組合模式 ...
行爲模式 模板模式 觀察者模式迭代子模式
3.3 工廠模式
簡單工廠模式 根據一個字符串 得到對應的對象
工廠方法模式 一個工廠中有多個方法(生產線)
這裏有個問題 就是要得到對應的產品 必須先創建一個工廠對象
靜態工廠模式 把工廠中的方法變成靜態的方法
(增加生產線 就會改動工廠 這樣違反開閉原則)
抽象工廠模式 指定建造工廠的規範 每個工廠生產一種產品 這樣 增加新產品 就意味
着增加新的工廠 。

3.4 單例模式
程序中使用時推薦使用 餓漢式
筆試中考察比較多的是 懶漢式 如果沒有特殊規定 建議 餓漢式
3.5 裝飾器模式
對一個方法的功能 進行增強
增強一個方法的功能 大家可以使用 繼承
long timeStart = …;
super.method();
timeEnd - timeStart
3.6 代理模式 和 組合模式

一、Singleton,單例模式:保證一個類只有一個實例,並提供一個訪問它的全局訪問點
二、Abstract Factory,抽象工廠:提供一個創建一系列相關或相互依賴對象的接口,而無須指定它們的具體類。
三、Factory Method,工廠方法:定義一個用於創建對象的接口,讓子類決定實例化哪一個類,Factory Method使一個類的實例化延遲到了子類。
四、Builder,建造模式:將一個複雜對象的構建與他的表示相分離,使得同樣的構建過程可以創建不同的表示。
五、Prototype,原型模式:用原型實例指定創建對象的種類,並且通過拷貝這些原型來創建新的對象。 行爲型有:
六、Iterator,迭代器模式:提供一個方法順序訪問一個聚合對象的各個元素,而又不需要暴露該對象的內部表示。
七、Observer,觀察者模式:定義對象間一對多的依賴關係,當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知自動更新。
八、Template Method,模板方法:定義一個操作中的算法的骨架,而將一些步驟延遲到子類中,TemplateMethod使得子類可以不改變一個算法的結構即可以重定義該算法得某些特定步驟。
九、Command,命令模式:將一個請求封裝爲一個對象,從而使你可以用不同的請求對客戶進行參數化,對請求排隊和記錄請求日誌,以及支持可撤銷的操作。
十、State,狀態模式:允許對象在其內部狀態改變時改變他的行爲。對象看起來似乎改變了他的類。
十一、Strategy,策略模式:定義一系列的算法,把他們一個個封裝起來,並使他們可以互相替換,本模式使得算法可以獨立於使用它們的客戶。
十二、China of Responsibility,職責鏈模式:使多個對象都有機會處理請求,從而避免請求的送發者和接收者之間的耦合關係
十三、Mediator,中介者模式:用一箇中介對象封裝一些列的對象交互。
十四、Visitor,訪問者模式:表示一個作用於某對象結構中的各元素的操作,它使你可以在不改變各元素類的前提下定義作用於這個元素的新操作。
十五、Interpreter,解釋器模式:給定一個語言,定義他的文法的一個表示,並定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子。
十六、Memento,備忘錄模式:在不破壞對象的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態。 結構型有:
十七、Composite,組合模式:將對象組合成樹形結構以表示部分整體的關係,Composite使得用戶對單個對象和組合對象的使用具有一致性。

十八、Facade,外觀模式:爲子系統中的一組接口提供一致的界面,fa?ade提供了一高層接口,這個接口使得子系統更容易使用。 
十九、Proxy,代理模式:爲其他對象提供一種代理以控制對這個對象的訪問 
二十、Adapter,適配器模式:將一類的接口轉換成客戶希望的另外一個接口,Adapter模式使得原本由於接口不兼容而不能一起工作那些類可以一起工作。

二十一、Decrator,裝飾模式:動態地給一個對象增加一些額外的職責,就增加的功能來說,Decorator模式相比生成子類更加靈活。 
二十二、Bridge,橋模式:將抽象部分與它的實現部分相分離,使他們可以獨立的變化。 
二十三、Flyweight,享元模式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章