![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
Fenice
狂奔的蜗牛
展开
-
策略模式
由策略抽象类或接口定义出一系列具体算法, 分别封装起来, 让各种算法策略之间可以相互替换, 让算法的变化不会影响到算法的客户. 使用上下文对象维护对算法对象的引用import java.util.*;interface Strategy { public void Algorithm();}class ConcreteStrategyA implements Strategy原创 2015-03-05 01:22:52 · 480 阅读 · 0 评论 -
简单工厂模式
把对象的实例化工作延迟到工厂类中进行import java.util.*;abstract class Operation { public abstract void Operate(); }class Operation1 extends Operation { public void Operate() { System.out.p原创 2015-03-05 00:41:46 · 547 阅读 · 0 评论 -
工厂方法模式
在普通的简单工厂方法中,简单工厂在创建对象时进行了必要的逻辑判断,选择实例化相关的类,但是这个操作违背了开闭原则,每次添加一种新的类型都需要修改工厂类. 所以可以使用工厂方法模式将实例化这个行为延迟到其子类,定义一个用于创建对象的接口,让接口的子类来决定实例化哪一个类. 如果添加新的类型,只需要添加新的类型的工厂就可以了.IFactory -- 工厂接口一个具体的Operatio原创 2015-03-05 01:49:57 · 497 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式其实是一种最一般的工厂模式形态,简单工厂模式和工厂方法模式都可以看成抽象工厂模式的特殊实现.抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类import java.util.*;interface Ifunc1 { public void work1_1(); public void work1_2();}interfac原创 2015-03-06 01:07:01 · 607 阅读 · 0 评论 -
外观模式
外观模式,为子系统中的一组接口提供一个更一致的界面,定义一个高层接口,这个接口使子系统更加易用. 使用外观类组合子系统的方法调用.用于将系统业务中不同层次的业务分离,便于维护import java.util.*;class SubSystem1 { public void method1() { System.out.println(" SubSystem1 m原创 2015-03-06 01:19:51 · 576 阅读 · 0 评论 -
模板方法模式
模板方法模式,定义一个操作中算法的骨架,把一些步骤延迟到子类当中.模板方法可以使子类不改变一个算法的结构即可重新定义算法某些特定步骤.使用继承将重复的代码放在父类中,将特定的代码延迟到子类中. AbstractClass实现模板方法,定义算法的骨架公共内容, 在ConcreteClass中实现具体的相关算法import java.util.*;abstract class原创 2015-03-07 00:04:52 · 566 阅读 · 0 评论 -
观察者模式
又称发布-订阅模式, 定义了一个一对多的依赖关系, 让多个观察者对象同时监听某一个主题对象. 这个主题对象在自己的状态发生变化时, 会通知所有的观察者对象,让它们能主动更新自己.解偶的实现: 定义一个抽象主题接口,把所有观察着对象的引用保存在一个序列中, 每个抽象主题都可以有若干个观察者对象的引用. 抽象主题提供一个主题,可以在具体主题中实现观察着的增加和删除定义一个抽象观察者接口,原创 2015-03-07 01:33:15 · 632 阅读 · 0 评论 -
适配器模式
将一个类的接口转成客户所希望的另外一个接口.使得由于接口不兼容而不能一起工作的类可以一起工作.在系统的数据和行为都正确, 但接口不符时, 应当考虑使用适配器, 主要应用于希望复用一些现存的类.Client ----> Target Adapteeclass Target { public void Request() { System.out.原创 2015-03-07 02:05:22 · 613 阅读 · 0 评论