设计模式学习笔记(三)—-Strategy策略模式
GOF《设计模式》一书对Strategy模式是这样描述的:
定义一系列的算法,把他们一个个封装起来,并且使它们可相互替换。Strategy模式使算法可独立于使用它的客户而变化。
Strategy模式以下列几条原则为基础:
1) 每个对象都是一个具有职责的个体。
2) 这些职责不同的具体实现是通过多态的使用来完成的。
3) 概念上相同的算法具有多个不同的实现,需要进行管理。
下面我将通过一个实例来说明它的具体使用,这个例子是关于数据库连接的。代码如下:
interface DatabaseStrategy{ public void process();}class MysqlDBStrategy implements DatabaseStrategy{ public void process() { System.out.println("处理Mysql数据库连接"); }}class OracleDBStrategy implements DatabaseStrategy{ public void process() { System.out.println("处理Oracle数据库连接"); }}class DataBaseManager{ public void process(DatabaseStrategy dbStrategy){ dbStrategy.process(); }}publicclass StrategyClient { public static void main(String[] args) { MysqlDBStrategy mysql=new MysqlDBStrategy(); DataBaseManager manager=new DataBaseManager(); manager.process(mysql); OracleDBStrategy oracle=new OracleDBStrategy(); manager.process(oracle); }}