设计模式
hy飞无
这个作者很懒,什么都没留下…
展开
-
java中责任链模式
责任链模式:当数据要进行多次处理时,可以使用此模式。一般过滤器和拦截器都用到了此种模式。原创 2018-07-02 16:29:09 · 1414 阅读 · 0 评论 -
状态模式
状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。状态模式和策略模式很相似,只是意图不一样。状态模式有定义好的状态,并且随着代码的执行状态在改变。先定义一个状态接口 public interface State { void insertQuarter(); void ejectQuarter(); void trunCrank(); void ...原创 2018-09-07 14:59:03 · 86 阅读 · 0 评论 -
组合模式
组合模式:允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。当你有数个对象的集合,他们彼此有“”整体/部分”的关系,并且你想要一致的方式对待这些对象时,就可以使用这种模式。常见的树形结构,父节点和叶子节点都可能有名称,描述等字段,但他们的实现方法却不一样。public class MenuComponent { public vo...原创 2018-09-07 13:37:20 · 107 阅读 · 0 评论 -
模板方法模式
模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以再不改变算法结构的情况下,重新定义算法中的某些步骤。就是把一个方法中调用到的相同的方法抽离出来写成公共方法,其他方法交给子类实现。和策略模式的区别 :策略模式是一整个完整的算法 ,模板模式是一个完成算法中的一部分。public abstract class CaffeineBeverage {...原创 2018-09-07 09:08:25 · 81 阅读 · 0 评论 -
外观模式
外观模式提供了一个统一的接口 ,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。 public class Home { private Light light; private Watch watch; private AirConditioner airConditioner; //创建一个集合的接口 ,方便调用 public void tr...原创 2018-09-06 15:24:40 · 87 阅读 · 0 评论 -
适配器模式
适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。在java代码里就是创建一个适配器接口,然后写适配器的实现类来让他们在接口里实现功能。这样只要调用适配器的同一接口,不需要调用每个类中可能不同的实现方法。public interface Duck { public void quack(); public void fly(); ...原创 2018-09-06 15:12:14 · 102 阅读 · 0 评论 -
命令模式
命令模式:将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。public class Light { public void on() { System.out.println("trun on the light"); } }public interface Command { void execute(); }...原创 2018-09-06 14:23:29 · 105 阅读 · 0 评论 -
工厂模式
1.简单工厂简单工厂其实不是一个设计模式,反而比较像一阵编程习惯,但是却被经常使用。public interface Pizza { void prepare(); void bake(); void cut(); void box(); }public class CheesePizza implements Pizza{ public void prepare...原创 2018-09-06 10:35:27 · 93 阅读 · 0 评论 -
策略模式
策略模式:定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。不是所有的鸭子都会飞或者叫,只有部分的鸭子会飞和叫,所以把这些变化的抽离出来写成接口,然后写出接口实现类,鸭子根据不同的行为去调用这些类。项目中一般 serviceimpl实现了 service,在controller 选择合适的service的实现类 。这里就用到了策略模式...原创 2018-09-03 17:20:05 · 116 阅读 · 0 评论 -
装饰者模式
装饰者模式:动态地将责任附加到对象身上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。每个组件都可以单独使用,或者被装饰者包起来使用,装饰者和组件必须是同样的类型 ,也就是有共同的超类,目的是利用继承到达类型匹配。装饰者和组件必须有相同的接口,因为装饰者必须取代被装饰者。java io中就使用了装饰者模式。 Beverage espresso = new Espress...原创 2018-09-04 16:55:47 · 80 阅读 · 0 评论 -
观察者模式
观察者模式:定义了对象之间的一对多的依赖,这样一来,当一个对象改变状态是,它的所有依赖者都会收到通知并自动更新。这个在项目中一般用来数据的多种处理,比如系统收到了数据 然后系统处理,但同时可能需要把数据发送给第三方。这种模式和消息队列很相似。public interface Subject { void registerObserver(Observer o); void r...原创 2018-09-04 15:38:42 · 93 阅读 · 0 评论 -
代理模式
代理模式:为另一个对象提供一个替身或占位符控制对这个对象的访问。使用代理模式创建代表对象,让代表对象控制某对象的访问,被代理的对象可以是远程的对象、创建开销大的对象或需要安全控制的对象。mybatis 就是利用了动态代理,调用接口是 其实生成了一个代理类,通过调用接口的方法名称早配置文件里选择要执行的sql 语句。日志管理:为重要的接口方法统一加日志记录。代理模式主要是控制对象的行...原创 2018-09-07 16:28:22 · 113 阅读 · 0 评论