设计模式
主要是讲解设计模式的概念,原理以及应用,希望一些跟我一样学习的小伙伴可以很快的理解这些设计模式,和自己一起进步,希望有小伙伴可以评论,自己也想有所突破,自己也会不断的去更改这部分的内容,现在会结合工作中的实际应用来给小伙伴展示以更好的理解,希望大家多提一些意见。
mindcarver
匠心
展开
-
设计模式之观察者模式
文章思路都来自于HeadFirst观察者模式简介定义:观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己设计场景设计一个系统 :显示目前的状况的布告板,当weatherObject 获得最原创 2017-12-30 16:08:09 · 337 阅读 · 0 评论 -
设计模式之装饰者模式
装饰者概述动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。问题的抛出开始的类设计如下: 但是有的顾客需要添加调料,比如说豆浆,摩卡等等。还需要根据这些调料收取不同的费用,所以订单系统开始尝试变化,第一个尝试如下: 看看这个设计有多么的糟糕,没中不同的饮料加调料的组合都需要生成一个新类,不敢想象会有多少个类存在,况且一旦某个调料价格变动,原创 2017-12-31 13:00:35 · 271 阅读 · 0 评论 -
设计模式之命令模式
定义命令模式:将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。场景1)首先,让所有的命令对象实现相同的包含一个方法的接口,也就是所谓的命令接口。public interface Command { public void execute();}2)实现一个打开电灯的命令:根据厂商提供的类,Light类有两个方法:on和off//这是一个原创 2018-01-02 20:44:04 · 193 阅读 · 0 评论 -
设计模式之适配器模式
学习目标本节目标:以不同的目的,包装某些对象,让它们的接口看起来不像自己而像是别的东西,不仅如此,还要探讨另一个模式,将对象包装起来以简化其接口。适配器适配器大家都知道,比如电源适配器,可以改变插座形状来匹配插头。那面向对象的适配器又是什么呢:将一个接口转换成另一个接口,以符合客户的期望。 我们再愉快的用鸭子来举例说明://鸭子类public interface Duc原创 2018-01-04 14:25:48 · 206 阅读 · 0 评论 -
责任链模式拦截器实现
package gxx.proxy;import java.lang.reflect.Method;public class ResponsebilityChain { public static void main(String[] args) { Helloword proxy1=(Helloword)InterceptorJdkProxy.bind(new H...原创 2018-04-02 14:59:55 · 389 阅读 · 0 评论 -
设计模式之原型模式
原型模式1:模式定义根据原对象实例复制新的实例。2:实现方式浅拷贝:使用一个已知实例对新创建实例的成员变量逐个赋值(可以理解为两个对象实例地址不一样,但是字段的地址一样。打个比方10个猴子拿着的是同一根金箍棒) //直接实现一个cloneable接口就完成了浅拷贝public class Monkey implements Cloneable { public...原创 2018-06-24 20:45:22 · 170 阅读 · 0 评论 -
设计模式之代理模式
代理模式1:代理模式简介可以把代理简单的理解为中介,为目标对象提供代理对象,由代理对象去控制目标对象的引用。因此可以通过代理对象来扩展目标对象功能而无需更改目标对象。2:代理模式的主要角色ISubject:抽象主题角色,目标对象和代理对象共同实现的接口。TargetSubject:目标主题角色,是实现抽象主题接口的类。Proxy:代理角色,也是实现抽象主题接口的类,内部含...原创 2018-06-25 11:14:54 · 141 阅读 · 0 评论 -
设计模式之工厂模式
工厂模式1:简单工厂模式public interface Milk { //获取一个标准产品 public String getName();}public class SanLu implements Milk { @Override public String getName() { return "三路"; }}pu...原创 2018-06-25 14:07:13 · 168 阅读 · 0 评论 -
设计模式之策略模式
策略模式1:策略模式的基本概念策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互替换,让算法独立于使用它的客户而独立变化。2:UML类图3:涉及的角色环境(Context)角色:持有一个Strategy(抽象策略)的引用。抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。具体策略(...原创 2018-06-25 15:04:47 · 151 阅读 · 0 评论 -
设计模式之委派模式
委派模式1:委派模式在23种设计模式里面是没有委派模式的,但是spring中大量存在,Spring MVC框架中的DispatcherServlet其实就用到了委派模式,我们可以将委派模式理解成静态模式以及策略模式的组合。2:一个简单的应用场景 分析如下:老板将任务委派给项目经理,项目经理将任务细化,根据每个人擅长的某一方面将细化后的任务分给指定的员工,权衡的方式(策略)有多种,...原创 2018-06-25 16:12:35 · 648 阅读 · 0 评论