1. 程式人生 > >設計模式之禪單一職責原則

設計模式之禪單一職責原則

最近在看<<設計模式之禪>>感覺這本書很是不錯的,demo雖然簡單但是確實很明瞭,感覺很有必要自己再敲一遍 單一職責原則 demo: https://github.com/sanyinchen/UMLDemo 如果一個類有多於一個的動機被改變,那麼這個類就具有多於一個的職責。而單一職責原則就是指一個類或者模組應該有且只有一個改變的原因。 demo:一個手機類:Iphone。需要用手機來撥打電話,需要三個階段:撥通電話號碼,通話,掛機。 然後這三個階段中撥通號碼和掛機是管理協議,通話只是資料傳輸,所以我們可以這麼設計。 IconnectionMangager 介面: public interface IconnectionMangager { public void dial();   public void hangup(); } IDataManger介面負責資料傳輸 public interface IDataManger { public void DataTranfer(IconnectionMangager mangager); } Iphone類繼承於IDataManger public class Iphone implements  IDataManger {   @Override public void DataTranfer(IconnectionMangager mangager) { // TODO Auto-generated method stub mangager.dial(); System.out.println("我正在通話!"); mangager.hangup(); } }     SingleDemo: public static void main(String[] args) { // TODO Auto-generated method stub Iphone iphone = new Iphone(); IconnectionMangager mangager = new IconnectionMangager() { @Override public void hangup() { // TODO Auto-generated method stub System.out.println("我開始撥打電話了..."); } @Override public void dial() { // TODO Auto-generated method stub System.out.println("我掛電話了..."); } }; iphone.DataTranfer(mangager); }