5个常用的设计模式
1.單例模式
單例好文:https://www.cnblogs.com/crazy-wang-android/p/9054771.html
由結(jié)果可以得知單例模式為一個面向?qū)ο蟮膽贸绦蛱峁┝藢ο笪┮坏脑L問點,不管它實現(xiàn)何種功能,整個應用程序都會同享一個實例對象。
2.代理模式
首先了解一下靜態(tài)代理:http://www.imooc.com/article/details/id/47695
接下來是動態(tài)代理:https://blog.51cto.com/13586365/2065317
3.裝飾器模式
裝飾器模式(Decorator Pattern)允許向一個現(xiàn)有的對象添加新的功能,同時又不改變其結(jié)構。
用奶茶的例子來進行解釋:https://www.jianshu.com/p/427342d3b5c0
裝飾器模式和道理模式的區(qū)別:
代理模式,注重對對象某一功能的流程把控和輔助。它可以控制對象做某些事,重心是為了借用對象的功能完成某一流程,而非對象功能如何。
裝飾模式,注重對對象功能的擴展,它不關心外界如何調(diào)用,只注重對對象功能的加強,裝飾后還是對象本身。
用實際的例子來看如果是中介租房的例子就是代理模式,如果是奶茶添加單獨材料等就是裝飾者模式
4.適配器模式
類適配器的重點在于類,是通過構造一個繼承Adaptee類來實現(xiàn)適配器的功能;?
對象適配器的重點在于對象,是通過在直接包含Adaptee類來實現(xiàn)的,當需要調(diào)用特殊功能的時候直接使用Adapter中包含的那個Adaptee對象來調(diào)用特殊功能的方法即可。
三種適配器:
類適配器(通過繼承想要的功能類和實現(xiàn)原本的接口類)
// 已存在的、具有特殊功能、但不符合我們既有的標準接口的類 class Adaptee {public void specificRequest() {System.out.println("被適配類 具有特殊功能...");} }// 目標接口,或稱為標準接口 interface Target {public void request(); }// 具體目標類,只提供普通功能 class ConcreteTarget implements Target {public void request() {System.out.println("普通類 具有普通功能...");} }// 適配器類,繼承了被適配類,同時實現(xiàn)標準接口 class Adapter extends Adaptee implements Target{public void request() {super.specificRequest();} }// 測試類 public class Client {public static void main(String[] args) {// 使用普通功能類Target concreteTarget = new ConcreteTarget();//實例化一個普通類 concreteTarget.request();// 使用特殊功能類,即適配類Target adapter = new Adapter();adapter.request();} }對象適配器(通過組合)
實際上是通過適配器把需要的PowerB作為powerA的屬性,然后初始化Adapter把powerB作為對象,這個時候adapter就相當于powerB一樣操作
接口適配器:
設計一個接口,提供了默認方法,對想要的功能提供一個抽象類,抽象出其中的功能,然后用具體的實現(xiàn)類實現(xiàn)。
5.觀察者模式
相當于微信公眾號的訂閱關系,如果說訂閱了公眾號,那么只要公眾號一更新關注公眾號的人就可以直接收到消息
好文:https://www.cnblogs.com/luohanguo/p/7825656.html
轉(zhuǎn)載于:https://www.cnblogs.com/ljq2622/p/11254143.html
總結(jié)
- 上一篇: 数据连接之--Datalist 的使用(
- 下一篇: Linux网络编程一步一步学+基础