23種設計模式中,自己比較熟悉的6種模式
阿新 • • 發佈:2019-01-02
1.迭代器模式
它提供一種方法來訪問容器中物件的各個屬性,卻又不暴露物件的內部細節。一般直接使用iterator
2.單例模式
確保某一個類只有一個例項,並且自行例項化,並向整個系統提供該例項
public class singleton{
private static final Singleton singlton=new Singleton ();
private singleton(){
}
public static Singleton getsingleton(){
return singleton;
}
}
優點:避免例項的重複建立,比較節約記憶體。
3.工廠方法模式
定義一個用於建立物件的介面,讓子類決定例項化哪一個類,將一個類的例項化,延遲到其子類上。可以看成NEW一個物件的代替品。
優點:在資料庫開發中,如果使用JDBC連線資料庫,資料庫從MYSQL切換到ORACLE,需要改動的地方就是切換一個驅動名稱(前提條件SQL語句是標準語句),其他的都不要修改。
4.抽象工廠模式
為建立一組相關或相互依賴的物件提供一個介面,它是工廠方法模式的升級版本。
5.原型模式
不能過NEW來產生一個物件,而是通過物件複製來實現的模式。
原型模式的核心:實現cloneable介面,覆寫clone()方法
6.代理模式
為其他物件提供一種代理以控制對這個物件的訪問
代理類可以為真實角色預處理訊息,過濾訊息,轉發訊息,以及事後處理訊息等功能
分為普通代理,強制代理
spring AOP是一個典型的動態代理
struts2的FORM元素對映到物件上,也是代理模式。