
设计模式
java的设计模式
thetimelyrain
见微知著
展开
-
JAVA设计模式之模板方法设计模式(Template Method)
模板方法定义:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。实例场景:headfirst里面是这样的一个例子:在一个店里面,有2种饮料,它们的冲泡步骤是这样的:咖啡:把水煮沸,用沸水冲泡咖啡,倒进杯子,加糖和牛奶 茶:把水煮沸,用沸水浸泡茶叶,倒进杯子,加柠檬/** * 咖啡 */public class Coffee { /** * 准备 */ publ原创 2020-08-18 16:59:41 · 250 阅读 · 0 评论 -
JAVA设计模式之适配器模式(Adapter Pattern)
适配器模式定义:将一个类的接口,转换成客户期望的另外一个接口。适配器让原本接口不兼容的类可以合作无间。适配器模式UML图:对象适配器:使用对象组合,以修改的接口包装被适配者:这种做法还有额外的优点,那就是,被适配的任何子类,都可以搭配着适配器使用类适配器:对象适配器和类适配器的区别就是类适配器继承了Targt和Adaptee,而对象适配器使用组合的方式将请求传递给被适配者。实例代码:现在有两个类,一个鸭子,一个火鸡,如下所示:public interface原创 2020-08-17 18:03:50 · 534 阅读 · 0 评论 -
JAVA设计模式之装饰者模式(Decorator Pattern)
今天我们来学习一下装饰者模式。作为一名程序猿,相信许多人都跟我一样,在平时写代码的过程中,习惯使用继承。但是继承有时候会出现非常严重的问题,不过,没担心。装饰者模式将会给爱用继承的我们一个全新的设计眼界!一、星巴兹咖啡的故事 我们通过一个生动有趣的例子来引出我们今天的主角--装饰者模式。 1、现在呢,有一个咖啡馆,它有一套自己的订单系统,当顾客来咖啡馆的时候,可以通过订单系统来点自己想要的咖啡。他们原先的设计是这样子的: 2、此时、咖啡馆为了吸引更多的顾客,需要在订单系统中允许顾原创 2020-08-10 13:46:30 · 255 阅读 · 0 评论 -
JAVA设计模式之策略模式(strategy pattern)
编写鸭子项目,具体要求如下 :1)有各种鸭子(比如 野鸭、北京鸭、水鸭等)鸭子有各种行为,比如叫、飞行等等。2)显示鸭子的信息项目进度1:传统方案解决鸭子问题的分析和代码实现1)传统的设计方案(类图)public abstract class Duck { public Duck() {} // 显示鸭子信息 public abstract void display(); public void quack() { System.out.println(原创 2020-08-07 11:10:17 · 372 阅读 · 1 评论 -
传递对象依赖的三种方式
对象的依赖关系有三种方式来传递,如下所示:1.构造函数传递对象依赖关系在类中通过构造函数声明依赖对象,按照依赖注入的说法,这种方式叫做构造函数注入。public interface IDriver {//是司机就应该会驾驶汽车public void drive();}public class Driver implements IDriver{private ICar car;//构造函数注入public Driver(ICar _car){this.car = _car;原创 2020-08-04 18:17:32 · 1193 阅读 · 0 评论 -
java观察者模式之jdk的Observerable的实现
概念:观察者模式:观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。–>以松耦合的方式在一系列对象之间沟通状态。上一篇文章用自定义的代码进行了观察者模式的实现,这一篇文章主要讲解jdk的实现方式,并探究此模式在jdk中实现的优缺点:业务场景:有一个气象观测站,能够检测具体的气象数据,如温度,湿度和气压,现在有三个具体的显示面...原创 2019-07-24 01:19:57 · 576 阅读 · 0 评论 -
设计模式之观察者模式
观察者模式:观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。–>以松耦合的方式在一系列对象之间沟通状态。下面介绍需要了解的概念:抽象主题(Subject):它把所有观察者对象的引用保存到一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对象。具体主题(Concrete Subject...原创 2019-07-24 00:21:09 · 365 阅读 · 0 评论 -
java代理模式之jdk动态代理详解(超详细)
代理模式:代理是基本的设计模式之一,它为你提供额外的或者不同的操作,而插入的用来代理"实际"对象的对象.这些操作通常涉及与"实际"对象的通信,因此代理通常充当着中间人的角色.动态代理动态代理是在实现阶段不用关心代理类,而在运行阶段才指定哪一个对象.动态代理的优点:职责清晰真实的角色就是实现实际的业务逻辑,不用关心其他非本职责的事务,通过后期的代理完成一件完成事务,附带的结果就是编程简...原创 2019-07-18 01:05:04 · 3001 阅读 · 0 评论 -
java代理模式之静态代理
代理模式:代理是基本的设计模式之一,它为你提供额外的或者不同的操作,而插入的用来代理"实际"对象的对象.这些操作通常涉及与"实际"对象的通信,因此代理通常充当着中间人的角色.静态代理是由程序员创建或工具生成代理类的源码,再编译代理类。所谓静态也就是在程序运行前就已经存在代理类的字节码文件,代理类和委托类的关系在运行前就确定了。下面是进行演示的代码:首先是代理类的接口://抽象角色 ...原创 2019-07-17 00:30:12 · 113 阅读 · 0 评论