![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
猛男陈朵朵
这个作者很懒,什么都没留下…
展开
-
设计模式:命令模式
概念将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。使用命令模式可以将命令的执行者和请求者解耦。代码执行者public class Executor { public void appointedToBegForFood () { System.out.println("孙悟空被派去化缘"); ...原创 2020-03-11 21:30:54 · 85 阅读 · 0 评论 -
设计模式:中介者模式
概念用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间地交互。代码抽象中介类public abstract class AbstractMediator { public abstract void notify(String string, AbstractCharacter character);}抽象...原创 2020-03-09 21:40:48 · 75 阅读 · 0 评论 -
设计模式:单例模式
概念保证一个类仅有一个实例,并提供一个访问它的全局访问点。代码饥汉模式public class SingletonHungry { private static SingletonHungry singletonHungry = new SingletonHungry(); public static SingletonHungry getInstance(){ ...原创 2020-03-09 21:35:12 · 88 阅读 · 0 评论 -
设计模式:享元模式
概念**使用共享技术有效地支持大量细粒度的对象。**在享元年对象内部并且不会随环境改变而改变的部分,可以成为享元对象的内部状态,而随环境改变而改变的、不可以共享的状态就是外部状态。在程序设计中,有时需要生成大量细粒度的类实例来表示数据。如果发现这些实例除了几个参数都是相同的, 有时就能够大幅度地减少需要创建实例的类的数量,然后对于会变化的参数,在方法调用的时候再传进来。也就是说,利用内部状态创建...原创 2020-03-03 21:13:03 · 92 阅读 · 0 评论 -
设计模式:工厂方法模式
代码产品类package simple.service;public abstract class Operation { protected double numberA; protected double numberB; public abstract double getResult(); public void setNumberA(double...原创 2020-02-26 17:09:00 · 80 阅读 · 0 评论 -
设计模式: 简单工厂模式
使用简单工厂模式封装对象的创建过程。这里以加减乘除计算为例。代码Operation运算类父类package simple.service;public abstract class Operation { protected double numberA; protected double numberB; public abstract double getR...原创 2020-02-25 21:50:44 · 78 阅读 · 0 评论 -
设计模式:桥接模式
概念如果实现系统可能有多个角度,每一种分类都可能有变化,那么就把这种多角度分离出来让它们独立变化,减少它们之间的耦合。**根据合成/聚合服用原则,尽量使用合成/聚合,尽量不要使用类继承。**以手机为例,手机可以按照品牌分,也可以按照存储内存分。如果每种品牌每种内存都建立一个类的话,会急剧增加类的数量。代码代码以手机为例,这里的分类角度有品牌----小米、华为,也有存储空间----6G和8G...原创 2020-03-08 23:26:02 · 67 阅读 · 0 评论 -
设计模式(): 观察者模式---特点待补充
概念观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。主题对象维护一个存储所有观察者对象的集合,主动向观察者对象发送消息。代码抽象通知者public interface Subject { void addMonster(Monster monster); void ...原创 2020-03-08 22:33:29 · 185 阅读 · 0 评论 -
设计模式:建造者模式
概念将一个复杂对象地构建与它地表示分离,使得同样的构建过程可以创建不同的表示。代码产品对象建造者模式的建造对象,通常相对较为复杂,建造过程相对固定抽象的建造者对象抽象的建造者对象,负责确定产品的创建模块,以及产品的返回。具体的建造者对象根据各自的要求个性化的实现这些抽象方法。具体的建造者对象一实现抽象的建造者对象中的抽象方法。具体的建造者对象二与上述对象功能相同,但是实现的方法...原创 2020-03-08 19:32:14 · 75 阅读 · 0 评论 -
设计模式:装饰模式
概念动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生存子类更为灵活。使用装饰模式时,将上一步装饰地结果作为参数传入到下一步地装饰中。代码要装饰的对象public class SunWukong { public void show(){ }}抽象的装饰类public abstract class Finery extends SunWukon...原创 2020-03-08 18:16:57 · 222 阅读 · 0 评论 -
设计模式:模板方法模式
概念定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤。在模板方法模式中,父类可以只定义抽象的方法,方法的具体实现可以在子类中进行。代码抽象类public abstract class TragicAdventure { public void caught(){ System.out.pri...原创 2020-03-08 17:46:21 · 109 阅读 · 0 评论 -
设计模式:职责链模式
概念使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。抽象对象负责设定职责链的下一级,具体的执行方法在子类里重写。代码抽象角色public abstract class Student { public Student higherStudent; public abstra...原创 2020-03-07 21:07:15 · 101 阅读 · 0 评论 -
设计模式:策略模式
概念通过定义算法家族,分别分装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。代码抽象算法public abstract class Strategy { public abstract void algorithm ();}具体算法public class StrategyA extends Strategy { @Override...原创 2020-03-07 20:17:12 · 71 阅读 · 0 评论 -
设计模式: 外观模式
概念使用外观模式,可以为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易。代码类一public class SunWukong { public void pickUpWeapon(){ System.out.println("孙悟空拿起了金箍棒"); } public void dropWeapon(...原创 2020-03-04 21:35:18 · 69 阅读 · 0 评论 -
设计模式: 备忘录模式
概念备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存该状态。这样就可以价格该对象恢复到原先保存的状态。备忘录模式需要三个角色:发起人、备忘录、管理者。当发起人想要储存内部状态时,可以根据当前状态创建一个备忘录对象;或者从管理者维护的备忘录对象读取保存的状态。备忘录对象负责储存发起人的状态。管理者负责维护备忘录对象,不能读取备忘录中存储的状态。代码发起人pac...原创 2020-03-04 20:58:31 · 87 阅读 · 0 评论