设计模式
weixin_37716758
这个作者很懒,什么都没留下…
展开
-
备忘录模式
package 备忘录模式; public class 备忘录模式 { public static void main(String[] args) { //创建游戏 CallOfDuty game = new CallOfDuty(); game.play(); //创建管理员 Caretaker caretaker = new Caretaker(); //存档 ...原创 2020-06-29 11:18:55 · 5274 阅读 · 0 评论 -
适配器模式_对象适配
package 适配器模式_对象适配; public class 适配器模式_对象适配 { public static void main(String[] args) { VoltAdapter adapter = new VoltAdapter(new Volt220()); System.out.println("输出电压:"+adapter.getVolt5()); } } ...原创 2020-06-29 11:18:23 · 155 阅读 · 0 评论 -
适配器模式_类适配
package 适配器模式_类适配; public class 适配器模式_类适配 { public static void main(String[] args) { VoltAdapter adapter = new VoltAdapter(); System.out.println("输出电压: "+adapter.getVolt5()); } } ```java pac...原创 2020-06-29 11:15:35 · 112 阅读 · 0 评论 -
观察者模式
优点 观察者和被观察者之间抽象耦合,应对业务变化 增加系统灵活性,可扩展性 缺点 package 观察者模式; public class 观察者模式 { public static void main(String[] args) { Subject subject = new Subject(); BinaryObserver binaryObserver = n...原创 2019-12-18 06:51:04 · 82 阅读 · 0 评论 -
命令模式
将一个请求封装成一个对象,从而让用户使用不同的请求把客户端参数化;对请求排队或者记录请求日志,以及支持撤销的操作。 使用场景: 在某些场合,比如要对行为进行"记录、撤销/重做、事务"等处理,这种无法抵御变化的紧耦合是不合适的。 在这种情况下,如何将"行为请求者"与"行为实现者"解耦?将一组行为抽象为对象,可以实现二者之间的松耦合。 优点: 缺点: package 命令模式; pu...原创 2019-12-16 22:16:08 · 63 阅读 · 0 评论 -
解释器模式
很少会用到的一种行为模式,提供了一种解释语言的语法或表达的方式。 给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。 使用场景: 1.对于一些固定文法构建一个解释句子的解释器。 2.在某些特定的领域出现不断重复的问题,可以将该领域的问题转化为一种语法规则下的语句,然后构建解释器来解释该语句。 优点: 将复杂的问题简单化、模块化,分离实现、解释执行。...原创 2019-12-14 14:55:11 · 57 阅读 · 0 评论 -
责任链模式
责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。 使用场景: 1.多个对象可以处理同一请求,但具体由哪个对象处理则在运行是动态决定 2.在请求处理者不明确的情况下像多个对象中的一个提交一个请求 3.需要动态指定一组对象处理请求 优点: 1....原创 2019-12-12 12:53:22 · 74 阅读 · 0 评论 -
策略模式
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们还可以互相替换.策略模式让算法独立于使用它的客户而独立变化. 使用场景: 1.针对同一类型问题的多种处理方式,仅仅具体行为有差别时. 2.需要安全的封装多种同一类型的操作时. 3.出现同一抽象类有多个子类,而又需要使用if-else 或者 switch-case 来选择具体子类时. 优点: package 策略模式; pu...原创 2019-12-11 12:43:29 · 98 阅读 · 0 评论 -
状态模式
package 状态模式_实战; public class 状态模式实战 { public static void main(String[] args) { LoginContext.getLoginContext().forward("转发内容"); LoginContext.getLoginContext().setUserState(new LoginInState()); ...原创 2019-12-11 07:47:45 · 68 阅读 · 0 评论 -
抽象工厂
package 抽象工厂模式; public class 抽象工厂模式 { public static void main(String[] args) { CarFactory Q3Factory = new Q3Factory(); Q3Factory.createBrake().brake();; Q3Factory.createEngine().engine(); Q3...原创 2019-12-08 16:33:23 · 60 阅读 · 0 评论 -
工厂模式
定义 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且通过使用一个共同的接口指向新创建的对象,创造型设计模式,提供了一种创建对象的最佳方式。 使用场景 任何需要生成复杂对象的地方,都可以使用工厂方法模式。复杂对象适合使用工厂模式,用new就可以完成创建的对象则无需使用工厂模式。 优点 1.调用者想创建一个对象,只要知道其名称即可。 2.屏蔽产品的具体实现,调用者只关心产品的接...原创 2019-11-28 20:01:25 · 78 阅读 · 0 评论 -
原型模式
import org.junit.Test; import java.util.ArrayList; /** * ================================================ * 作 者:zhoujianan * 版 本:v1.0 * 创建日期:2019/11/15 * 描 述: * 修订历史: * ============...原创 2019-11-15 18:26:32 · 70 阅读 · 0 评论 -
建造者模式
import org.junit.Test; /** * ================================================ * 作 者:zhoujianan * 版 本:v1.0 * 创建日期:2019/11/15 * 描 述: * 修订历史: * ==========================================...原创 2019-11-15 18:23:08 · 77 阅读 · 0 评论