首先建立抽象物品類,以tom老師講的milk為例
//milk 抽象介面
public inte***ce milk
各類milk具體類實現該介面
//蒙牛類
public class mengniu implements milk
}//特崙蘇
public class telunsu implements milk
}//伊利
public class yili implements milk
}//三鹿
public class sanlu implements milk
}
建立工廠
public class ******factory else if("伊利".equals(name))else if("蒙牛".equals(name))else if("三鹿".equals(name)) else }}
測試
需要注意的是簡單工廠模式方法並沒有存在於23中設計模式之中建立工廠介面
public inte***ce factory
實現工廠介面
/** mengniu***/
public class mengniufactory implements factory
}/** 伊利***/
public class yilifactory implements factory
}/**特崙蘇***/
public class telunsufactory implements factory
}/** 三鹿***/
public class sanlufactory implements factory
}
測試**
public class factorytest
}
工廠模式方法提公升了專業化水平和精細化程度,無需使用者自己直接與產品交涉,在一定程度上降低了**的耦合性,但是這種方式任然有不足之處,如可擴充套件性不強,如此抽象工程模式便誕生了。
抽象工廠模式是對工廠模式方法的的可擴充套件性增強,從而使得**更能符合開閉環原則。
//建立抽象工廠
public abstract class abstractfactory
建立工廠
public class milkfactory extends abstractfactory
@override
public milk getyili()
@override
public milk gettelunsu()
@override
public milk getsanlu()
}
整體**測試
public class abstractfactorytest
}
設計模式學習筆記之二 單例模式
單例模式,顧名思義就是讓乙個類在執行過程中只有乙個例項。public class singleton 靜態工廠方法,返回此類的唯一例項 public static singleton getinstance return singleton 加鎖是為了防止多執行緒同時呼叫時,new出多個例項 在加鎖...
設計模式 學習設計模式之二(原則1)
1.單一職責原則 定義 單一職責原則,就乙個類而言,應該僅有乙個引起它變化的原因!單一職責就是乙個類負責一種職責,比如,在物件導向的計算器中,每乙個計算的方式就有乙個對應的計算類。這個計算方式的業務都在這個類中,而其他的計算跟這個類無關。我的例子也許不是非常的恰當,再例如,三層架構,就是對各種邏輯的...
設計模式筆記之二 模板方法模式
模板方法模式的定義 在乙個方法中定義乙個演算法的骨架,將一些步驟延遲到子類中。模板方法使得子類可以在不改變演算法結構的情況下,重新定義演算法中的某些步驟 uml圖 暫略 例子 public abstract class beveragebase 燒開水演算法是一樣的 public void boil...