![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
faaarii
努力变优秀
展开
-
大话设计模式系统总结
过完暑假我就要正式变为大三狗了,学习设计模式的时候没有边学边总结,现在趁着期末刚考完试的热乎劲来进行总结一下 这学期的学习蹭过几节王老师的课,有一句话我忘记具体是怎么说的了,大体意思是:学完设计模式最大的体会不是我学会了几种模式而是在学习的过程中发现自己还有好多不知道的东西好多需要学习的东西。废话不多说,开始整理:目标就是要搞清楚这三个问题**为什么要学设计模式**什么情况下...原创 2019-07-02 19:12:57 · 221 阅读 · 0 评论 -
命令模式
命令模式(command)将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。package com;public abstract class Command { protected Receive receiver; public Command(Receive receiver) { super(); ...原创 2019-07-07 12:34:52 · 85 阅读 · 0 评论 -
桥接模式
桥接模式(Bridge)package com;public class Abstraction { protected Implementor implementor; public void setImplementor(Implementor implementor) { this.implementor = implementor; } publi...原创 2019-07-07 12:30:29 · 120 阅读 · 0 评论 -
单例模式
单例模式(Singleton)package com;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;public class Singleton { private static Singleton instance; private static L...原创 2019-07-07 12:25:25 · 80 阅读 · 0 评论 -
组合模式
组合模式package com;public abstract class Component { public String name; public Component(String name) { super(); this.name = name; } public abstract void add(Component c); public...原创 2019-07-07 12:21:05 · 161 阅读 · 0 评论 -
状态模式
状态模式package com;public class ConcreteStateA implements State{ @Override public void handle(Context context) { // TODO Auto-generated method stub System.out.println("当前状态是:A"); contex...原创 2019-07-07 11:59:55 · 104 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式package com;public class AccessDepartment implements IDepartment{ @Override public void insert(Department department) { // TODO Auto-generated method stub System.out.println("...原创 2019-07-07 11:45:22 · 94 阅读 · 0 评论 -
观察者模式
观察者模式package com;public class ConcreteObserver extends Observer{ private String name; private String observerState; private ConcreteSubject subject=new ConcreteSubject(); public Concre...原创 2019-07-04 20:40:54 · 141 阅读 · 0 评论 -
建造者模式
建造者模式(生成器模式)package com;public abstract class Builder { public abstract void builderA(); public abstract void builderB(); public abstract Product getResult();}***************package co...原创 2019-07-02 21:20:03 · 73 阅读 · 0 评论 -
外观模式
外观模式package com;import com.SubSystem.*;public class Facade { public SubSystemOne one; public SubSystemTwo two; public SubSystemThree three; public SubSystemFour four; public Facade() {...原创 2019-07-02 20:34:59 · 119 阅读 · 0 评论 -
模板方法模式
模板方法模式package com;abstract class AbstractClass { public abstract void PrimitiveOperation1(); public abstract void PrimitiveOperation2(); public void templateMethod(){ PrimitiveOpera...原创 2019-07-02 19:59:41 · 108 阅读 · 0 评论 -
原型模式
原型模式public class ConcretePrototype1 implements Cloneable{ private String id; public String getId() { return id; } public void setId(String id) { this.id = id; } public Concret...原创 2019-07-02 19:50:08 · 116 阅读 · 0 评论 -
工厂方法模式
工厂方法模式雷锋工厂public interface IFactory { LeiFeng CreateLeiFeng();}*******public class LeiFeng { public void sweep(){ System.out.println("扫地"); } public void wash(){ System.out.printl...原创 2019-07-02 19:44:36 · 112 阅读 · 0 评论 -
代理模式
代理模式package syc;public class Proxy implements Subject{ private RealSubject realsubject; public Proxy(RealSubject realsubject) { this.realsubject = realsubject; } @Override public ...原创 2019-07-02 19:40:58 · 98 阅读 · 0 评论 -
装饰模式
装饰模式优点比继承更灵活 从为对象添加功能的角度来看,装饰模式比继承来得更灵活。继承是静态的,而且一旦继承是所有子类都有一样的功能。而装饰模式采用把功能分离到每个装饰器当中,然后通过对象组合的方式,在运行时动态的组合功能,每个被装饰的对象,最终有哪些功能,是由运行期动态组合的功能来决定的。 更容易复用功能 装饰模式把一系列复杂的功能,分散到每个装饰器...原创 2019-07-02 19:36:32 · 405 阅读 · 0 评论 -
策略模式
策略模式结构图:优点1.定义一系列算法2.避免多重条件语句3.更好的扩展性缺点客户必须了解每种策略的不同 增加了对象数目本质分离算法,选择实现。建议在如下情况中,选用策略模式:出现有许多相关的类,仅仅是行为有差别的情况,可以使用策略模式来使用多个行为中的一个来配置一个类的方法,实现算法动态切换 出现同一个算法,有很多不同的实现的情况,可以使用...原创 2019-07-02 19:27:33 · 108 阅读 · 0 评论 -
简单工厂模式
简单工厂结构图优点帮助封装 简单工厂虽然很简单,但是非常友好的帮助我们实现了组件的封装,然后让组件外部能真正面向接口编程。 解耦 通过简单工厂,实现了客户端和具体实现类的解耦。 如同上面的例子,客户端根本就不知道具体是由谁来实现,也不知道具体是如何实现的,客户端只是通过工厂获取它需要的接口对象。缺点:可能增加客户端的复杂度 如果通过客...原创 2019-07-02 19:22:26 · 81 阅读 · 0 评论 -
职责链模式
职责链模式(chain of responsibility)使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。package com;public class ConcreteHandler1 extends Handler{ @Override public void hander...原创 2019-07-07 12:41:00 · 80 阅读 · 0 评论