模板方法模式 : 在乙個方法中定義乙個演算法的骨架,而將一些步驟延遲到子類中.模板方法使得子類可以在不改變演算法結構的情況下,重新演算法.重新定義演算法中的某些步驟.
咖啡因飲料超類
/**
* 咖啡因飲料超類
* @author panxiuyan**/
public abstract class caffeinbeverage
}/**
* 沖泡
*/public abstract void brew();
/*** 新增相關的配料
*/public abstract void addcondimenes();
/*** 把水燒開
*/public void boilwater()
/*** 將飯料倒入杯子
*/public void pourincup()
/*** 是否新增相關的配料--勾子程式
* @return
*/public boolean customerwantscondiments()
}
咖啡
public class coffee extends caffeinbeverage
@override
public void brew()
}
咖啡中可以利用勾子方法.可以直接使用超類的.
茶
public class tea extends caffeinbeverage
@override
public void brew()
//使用勾子方法茶不加入配料
@override
public boolean customerwantscondiments()
}
勾子方法作用,如超類解耦.子類實行具體動作.超類確定是否執行.(別找我,我會找你的)
hand first 設計模式 工廠模式
工廠模式定義,建立乙個物件介面,但由子類決定要例項化的類是哪乙個.工廠方法讓類把例項化推遲到子類.抽象的比薩商品類 public abstract class piazzstore 讓子類去實現 public abstract piazz createpiazz string name 中國比薩商店...
hand first 設計模式 命令模式
命令模式 將請求封閉成物件,這可以讓你使用不同的請求,佇列.或者日誌請求來引數化其他物件.命令模式式可支援撤銷技術操作.例項需求 命令介面 public inte ce command 開關介面 public inte ce switch 例項燈public class light implemen...
hand first 設計模式 單例模式
單例模式 確保乙個類只有乙個例項,並提供乙個全域性訪問點.public class test public static test getinstance return test 上面單例模式 採用延遲載入,在需要的時候再生成例項.但是多執行緒的情況可能會產生去多個例項.多執行緒同時訪問下面 會產生...