观察者模式:
观察者模式比较容易理解:
比如天龙八部里面的王语嫣,每次慕容复打架的时候,每当别人将要使出什么绝招时,会提醒慕容复注意提防.
项目中用到的地方就是注册中中心,zookeeper,当Provider上线或者下线,它会告知Consumer能不能调用,这就是观察者
在java中的体现,主要就是 观察者,和被观察的对象,然后所有的被观察者在观察者这里注册, 以便被观察的对象发生了变化,可以通知其他被观察者
参考: https://www.runoob.com/design-pattern/observer-pattern.html

外观模式:
提供一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层的接口,让子系统更容易使用。
一个接口搞定所有事情,调用者不用管里面复杂的结构逻辑(典型的面向对象),就是不过耦合性太高了,不符合开闭原则
参考: https://www.runoob.com/design-pattern/facade-pattern.html

模板方法模式:
参考:https://blog.csdn.net/xia744510124/article/details/52372340
https://www.runoob.com/design-pattern/template-pattern.html
将固定操作步骤(算法),在抽象抽象出来,这既是模板方法,可变部分,在子类中重写
比如: Spring中的JdbcTemplate
1,加载驱动
2,建立连接
3,获取数据库操作对象
4,定义sql语句
5,执行操作
6,获取结果
7,关闭(关闭结果集–> 关闭—操作对象—>关闭连接)
这就是一套模板,所不同的就是具体每一个步骤中的具体参数,
为了防止恶意的操作,一般模板方法前面会加上final关键字,不允许被覆写;

简单的实现就是:

public abstract class AbstractTemplate {abstract void func1();abstract void func2();abstract void func3();//模板方法public final void templateFunc(){func1();func2();func3();}
}

然后每个子类继承这个抽象模板就行了,而且每个子类的行为(算法),都是一致的,
提取公共代码,但是可读性,有点差,

装饰器模式:
用装饰器类包装原有的类,在保证原有类方法完整的情况下,提供额外的功能,就像包起来一样,
被用于多个 Java IO 类中
例如:给电脑加个显示器

interface Screen {void show();
}//电脑
class Computer implements Screen {@Overridepublic void show() {System.out.println("电脑的显示器都可以用来看片");}
}//装饰器的抽象类
abstract class BigScreen implements Screen {protected  Screen screen;public BigScreen(Screen screen) {this.screen = screen;}
}
//装饰器实现类
class newScreen extends BigScreen{public newScreen(Screen screen) {super(screen);}@Overridepublic void show() {screen.show();System.out.println("大屏幕看片比较爽");}//测试public static void main(String[] args) {//原来的电脑Computer computer = new Computer();//加了大显示器的电脑newScreen newScreen = new newScreen(computer);newScreen.show();}
}

其他的模式暂时先停一下吧,我迷茫了,
各种模式都是惊人的相似,比如代理模式和外观模式,装饰器模式:
代理模式,代理的地方加点前置算法,再加点后置算法,它是外观模式呢?还是装饰器模式呢?
缓缓吧!等有一天真的明白了,再继续

java设计模式-- 观察者模式 , 外观模式, 模板方法模式相关推荐

  1. JAVA设计模式(14) —行为型模板方法模式(Template Method)

    1 定义: 模板方法模式(Template Method) Define the skeleton of an algorithm in anoperation, deferring some ste ...

  2. java设计模式-观察者模式和中介者模式的异同

    1.基本定义区别: 观察者模式: :察者模式属于行为型模式,指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新.这种模式有时又称作发布-订阅模式.模 ...

  3. Java设计模式-观察者模式(订阅发布模式)

    Java设计模式-观察者模式(订阅发布模式) 一起来看 会了就当复习丫,不会来一起来看看吧. 很喜欢一句话:"八小时内谋生活,八小时外谋发展". 如果你也喜欢,让我们一起坚持吧!! ...

  4. 初探Java设计模式3:行为型模式(策略,观察者等)

    转自https://javadoop.com/post/design-pattern 行为型模式 策略模式 观察者模式 责任链模式 模板方法模式 状态模式 行为型模式总结 本系列文章将整理到我在Git ...

  5. Java设计模式(16)中介模式(Mediator模式)

    Mediator定义:用一个中介对象来封装一系列关于对象交互行为. 为何使用Mediator模式/中介模式 各个对象之间的交互操作非常多,每个对象的行为操作都依赖彼此对方,修改一个对象的行为,同时会涉 ...

  6. Java设计模式(1)工厂模式(Factory模式)

    工厂模式定义:提供创建对象的接口. 为何使用工厂模式 工厂模式是我们最常用的模式了,著名的Jive论坛,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见. 为什么工厂模式是如此常用?因 ...

  7. Java设计模式(8)组合模式(Composite模式)

    Composite定义:将对象以树形结构组织起来,以达成"部分-整体" 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性. Composite比较容易理解,想到Compo ...

  8. Java设计模式(10)代理模式(Proxy模式)

    理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在实际应用中,可以如鱼得水,享受游刃有余的乐趣. Proxy是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,P ...

  9. 【Java设计模式】简单学访问者模式——我的选择是,Yes

    目录 说明 实现方式 优点 缺点 应用场景 其他链接 说明 行为型模式之一,其他还有命令模式.模板方法模式.迭代器模式.观察者模式.中介者模式.备忘录模式.解释器模式(Interpreter模式).状 ...

最新文章

  1. C++中前置声明介绍
  2. linux accept 队列,[译] TCP的SYN队列和Accept队列
  3. config done shell_shell do...done $config
  4. 关于SAP CRM One Order状态(Status)和Status Profile的处理逻辑
  5. 为什么说干实业的玩不过干金融的?
  6. 我佛了!用 KNN 实现验证码识别,又 Get 到一招
  7. 应用安全-CMF/CMS漏洞整理
  8. 博文内部设置目录尝试
  9. nginx中的的ip_hash机制
  10. 萤火虫算法_萤火虫算法(一)
  11. SQL Server学习笔记3: SQL Server2005集群上的SP3补丁升级步骤
  12. Letex排版学习笔记
  13. 对话状态跟踪学习笔记
  14. Laravel 生成QRCODE
  15. RK3568 Android12 长按power键功能设置
  16. APP加固新方向——混淆和瘦身
  17. 五、卷积与傅立叶变换
  18. 推荐几个字体生成网站
  19. 网络运维与管理2013超值精华本
  20. struts2技术内幕读书笔记1

热门文章

  1. 流畅的python学习笔记(三):数据结构(1)
  2. How I built a wind map with WebGL 源码理解(没完)
  3. Kettle使用中的20个常见问题
  4. uniapp云开发uniCloud.uploadFile上传图片文件后缀名丢失
  5. 问题 G: C语言实验——保留整数
  6. vs提示: the following site was not found in the following configuration files解决办法
  7. linux dotnet run失败,linux dotnet--info无效
  8. 【Unity】绘制阿基米德螺旋线
  9. php 实现setinterval,JavaScript中setInterval的使用详解
  10. Linux——什么是防火墙?防火墙的种类及各自的特点如何?