Java-策略模式

Java-策略模式

策略模式遵循开闭原则,实现代码的解耦合。扩展新的方法时也比较方便,只需要继承策略接口就好了上面列出的这两点算是策略模式的优点了,但是不是说他就是完美的,有很多缺点仍然需要我们去掌握和理解。
策略模式把对象本身和运算规则区分开来,因此我们整个模式也分为三个部分。

  • 环境类(Context):用来操作策略的上下文环境,也就是我们游客。
  • 抽象策略类(Strategy):策略的抽象,出行方式的抽象
  • 具体策略类(ConcreteStrategy):具体的策略实现,每一种出行方式的具体实现。
Java设计模式之代理模式

Java设计模式之代理模式

代理模式

代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.
这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法

举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明星的经纪人,来达到同样的目的.明星就是一个目标对象,他只要负责活动中的节目,而其他琐碎的事情就交给他的代理人(经纪人)来解决.这就是代理思想在现实中的一个例子.

Java设计模式之命令模式
Java设计模式之适配器模式
Java设计模式之装饰者模式

Java设计模式之装饰者模式

问题引入

咖啡店的类设计:

  1. 一个饮料基类,各种饮料类继承这个基类,并且计算各自的价钱。
  2. 饮料中需要加入各种调料,考虑在基类中加入一些布尔值变量代表是否加入各种调料,基类的cost()中的计算各种调料的价钱,子类覆盖cost(),并且在其中调用超类的cost(),加上特定饮料的价钱,计算出子类特定饮料的价钱。

缺点:类数量爆炸、基类加入的新功能并不适用于所有的子类、调料价钱的改变、新调料的出现都会要求改变现有代码;有的子类并不适合某些调料等情况……

Java设计模式之工厂模式

Java设计模式之工厂模式

工厂模式

序言

工厂模式在《Java与模式》中分为三类:

  1. 简单工厂模式(Simple Factory):不利于产生系列产品;

  2. 工厂方法模式(Factory Method):又称为多形性工厂;

  3. 抽象工厂模式(Abstract Factory):又称为工具箱,产生产品族,但不利于产生新的产品;

Java设计模式之单例模式
Java设计模式之观察者模式

Java设计模式之观察者模式

定义

在阎宏博士的《JAVA与模式》一书中开头是这样描述观察者(Observer)模式的:
观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。