1.觀察模式
---使用場景:當(dāng)某一處數(shù)據(jù)放生變化了,需要其他幾處作出相應(yīng)的變化,那我們怎么才能通知到他們呢?這是一個我們需要思考的問題。這個模式就為它而生的,數(shù)據(jù)發(fā)生變化的一段稱為被觀察者,根據(jù)數(shù)據(jù)作出變化的一段稱為觀察者。被觀察者對象中存放著觀察者對象數(shù)組。當(dāng)數(shù)據(jù)發(fā)生變化了,遍歷觀察者對象數(shù)組,調(diào)用相應(yīng)的方法。
---實現(xiàn)方法:1.抽象出一個接口,作為觀察者的動作。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.被觀察者中有這個接口的數(shù)組,添加觀察者的方法,和刪除觀察者的方法。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??3.給需要注冊觀察者的地方,注冊觀察者接口。
2.裝飾者模式
---應(yīng)用場景:簡單的繼承已不能完成客戶的需求,一旦更改,維護(hù)起來很麻煩。類數(shù)量爆炸(主要靠繼承實現(xiàn)類,調(diào)料多,類就多,維護(hù)起來麻煩);設(shè)計死板,以及基類加入的新功能并不適用于所有的子類(就是在基類中添加所有調(diào)料屬性,根據(jù)情況設(shè)置那些調(diào)料可用),所以想到組合的這個思路,就是一點一點加裝飾,對象集合。
---實現(xiàn)方法:1.裝飾者和被裝飾者對象有相同的超類型。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??2.可以用一個或多個裝飾者包裝一個對象。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3.在任何需要原始對象的場合,可以用裝飾過的對象代替它。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4.根據(jù)自己的需求,加上的行為。
3.工廠模式
地方
4.單例模式
---應(yīng)用場景:一個類只需要一個實例化對象。如果不作處理,會出現(xiàn)多個對象,會造成混亂。如用戶狀態(tài)必須只有一個,不然new多個對象,會出現(xiàn)多個狀態(tài)的。
---實現(xiàn)方法:1.類A構(gòu)造方法私有化 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.類A的靜態(tài)方法,new 這個類A對象