什么是原型模式
用原型實例指定創(chuàng)建對象的種類闷畸,并且通過拷貝這些原型創(chuàng)建新的對象殃恒。
簡單理解一下哈,就是通過實例拷貝一個新的實例迂猴,這個讓我們想到了java里面的clone()方法慕淡,對啦,就是這么的簡單沸毁!
甭磨嘰峰髓,上代碼
class Simple implements Cloneable{
@Override
public Simple clone(){
Simple simple = null;
try{
simple = (Simple)super.clone();
}catch(CloneNotSupportException e){
//異常信息
}
}
}
使用場景
- 不想使用構(gòu)造函數(shù)創(chuàng)建對象傻寂,那么就可以使用clone方法,這樣可以避免傳入過多的構(gòu)造參數(shù)携兵。
原型模式的思考
再看一些開源庫的代碼的時候疾掰,發(fā)現(xiàn)一個很類似原型模式的方法,只是它通過構(gòu)造方法實現(xiàn)的徐紧,而不是clone()静檬。
例如okhttp里面的OkHttpClient的newBuilder()方法,這個可以很好的根據(jù)當前已有的OkHttpClient并级,創(chuàng)建一個新的OkHttpClient拂檩。