软件构造之设计模式

创建型模式:简单工厂方法 工厂方法 抽象工厂

简单工厂方法

工厂方法

把工厂类改成接口

优点:

用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程;

在系统增加新的产品时只需要添加具体产品类和对应的具体工厂类,无须对原工厂进行任何修改,满足开闭原则;

缺点:

每增加一个产品就要增加一个具体产品类和一个对应的具体工厂类,这增加了系统的复杂度。

配置文件解耦简单工厂方法模式

抽象工厂

现在,工厂类可以实现很多不同产品:(工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品)

结构型模式:适配器模式与桥接模式

适配器模式

桥接模式

UrgencyNotification和 NormalNotification类图与 SevereNotification 基本一致,略

行为型模式:策略模式

main方法需要调用其他方法,因此其他方法需要为static,采用下划线表示 static

由于策略类都实现同一个接口,所以使它们之间可以自由切换;

增加一个新的策略只需要添加一个具体的策略类即可,不需要改变原有的代码,符合“开闭原则“

但是,客户端必须知道所有的策略类,并自行决定使用哪一个策略类。

可以增加反向依赖: