随笔分类 -  design pattern

摘要:适用于同一操作的不同行为,策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们可以相互替换,让算法独立于使用它的客户而独立变化,具体应用场景如第三方支付对接不同银行的算法。 要点:1)抽象策略角色 2)具体策略角色:包装相关算法和行为 3)环境角色:持有一个策略类的引用,最终给客户端调用 阅读全文
posted @ 2017-07-19 22:06 code.world 阅读(289) 评论(0) 推荐(0) 编辑
摘要:很多对象有每个对象对其下家的引用而连接起来形成一条链,请求在这条链上传递,直到链上某个对象决定处理此请求,应用场景如单位审批流程等。 要点:1)抽象处理者角色:定义处理请求接口及设定下家引用 2)具体处理着角色:具体处理请求或选择将请求传给下家 1、抽象处理者角色类,定义处理请求接口及下家引用 2、 阅读全文
posted @ 2017-07-19 21:42 code.world 阅读(181) 评论(0) 推荐(0) 编辑
摘要:适用于为不同操作添加共同的额外行为。通过代理对象访问目标对象,这样可以增加对目标对象的额外操作,达到扩展目标对象功能的目的,如spring事务、AOP等。 要点:1)抽象角色:通过接口或抽象类声明真实角色实现的业务方法。(例子中的Move) 2)代理角色:实现抽象角色,是真实角色的代理(例子中的*P 阅读全文
posted @ 2017-07-19 00:15 code.world 阅读(223) 评论(0) 推荐(0) 编辑
摘要:抽象类中公开定义了执行它的方法的方式,子类可以按需求重写方法实现,但调用将以抽象类中定义的方式进行,典型应用如银行办理业务流程、冲泡饮料流程。下面给出简单例子,用沸水冲泡饮料,分为四步:将水煮沸、泡制饮料、将饮料倒入杯中、加入调味料。 1、模板抽象类 要点:1)抽象类 2)final修饰的模板方法 阅读全文
posted @ 2017-07-18 21:48 code.world 阅读(179) 评论(0) 推荐(0) 编辑
摘要:工厂模式是最常见的实例化对象的模式,用来替代new操作。采用这种模式创建对象会有一些额外的操作,但他会带给系统更大的扩展性和更少的修改量。典型的应用spring bean容器。下面简单实现工厂的例子。 1、动物接口,提供公用方法体 2、猫类,继承动物接口,实现猫的eat方法 3、狗类,继承动物接口, 阅读全文
posted @ 2017-07-18 21:19 code.world 阅读(199) 评论(0) 推荐(0) 编辑
摘要:单例模式保证系统中的类只有一个实例。单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。单例模式可以分为两种模式:饿汉模式、懒汉模式。 1、饿汉模式 测试 2、懒汉模式 测试 3、饿汉模式、懒汉模式区别 1)饿汉模式在类加载时实例就被创建 阅读全文
posted @ 2017-03-21 22:07 code.world 阅读(163) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示