1. 程式人生 > >23種設計模式中,自己比較熟悉的6種模式

23種設計模式中,自己比較熟悉的6種模式

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元素對映到物件上,也是代理模式。