
设计模式
zlj1217
这个作者很懒,什么都没留下…
展开
-
设计模式——策略模式的学习
策略模式定义一系列的算法,把每一个算法封装起来,并且使它们可以相互替换。这个模式中使得各个算法可以独立于使用它的客户而变化。策略模式的构成: 1.抽象策略角色:策略类,通常由一个接口或者抽象类实现。 2.具体策略角色:包装了相关的算法和行为,实现策略接口或继承抽象类。 3.环境角色:context,运行时持有一个策略类的引用,最终给客户端调用。 对应的uml图片为: 策略模式让...原创 2018-07-27 00:50:56 · 2912 阅读 · 3 评论 -
设计模式——观察者模式
观察者模式观察者模式也是我们经常会用到的设计模式之一,这里用一个气象站的一些数据变化通知气象板为例去记录一下观察者设计模式,值得一提的是java中提供了观察者模式的接口和类。demo一个气象站通知气象板的小demo,气象站提供温度、气压、湿度的数据给一些气象板提供数据,当气象站发生变化了之后,要通知订阅气象站数据的气象板数据变更。一般方案在气温变化的气象站中加入气象板对象,在数据变化时...原创 2018-12-31 02:25:27 · 196 阅读 · 0 评论 -
设计模式——模板方法的一个应用
模板方法模板方法很多情况下代码中的业务都可以抽象出一个模板去解决,这时候经常需要用到模板方法。大家经常接触到的是一些业务方法的抽象模板,比如在计算优惠券的流程当中总是有一定的步骤:(1)先计算该商品是否可以拥有优惠券信息(2)再为该商品绑定优惠券信息(3)最后回调或者通知向下的流程今天要记录的是一个通用服务层的模板方法,包含了前置校验、后置处理(是有点像拦截器= =)、finally操...原创 2019-02-02 00:47:06 · 238 阅读 · 0 评论 -
设计模式——装饰者模式
装饰者模式装饰者模式是java IO流中使用的一个经典模式,本文会简单介绍装饰者模式的原理和解决的问题,并且以一个咖啡demo来演示装饰者模式。装饰者模式的定义装饰者模式遵守的设计原则:开闭原则(类应该支持扩展,而拒绝修改)装饰者模式通过组合的方式扩展对象的特性,这种方式允许我们在任何时候对对象的功能进行扩展甚至是运行时扩展,而若我们用继承来完成对类的扩展只能在编译时实现,可以比较动态地...原创 2019-03-16 19:29:20 · 425 阅读 · 0 评论