introduction:
策略模式:
定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
使用策略模式可以在运行时动态地选择具体要执行的行为。
对用户隐藏具体策略(算法)的实现细节,彼此完全独立。
demo:
description:使用策略模式封装操作不同数据库的算法,而这些算法是可以相互替换的,他们独立于用户的调用程序。
DBStrategy.java
public interface DBStrategy {
void dealConnection();
}
MysqlDBStrategy.java
public class MysqlDBStrategy implements DBStrategy{
@Override
public void dealConnection() {
System.out.println("mysql connection");
}
}
OracleDBStrategy.java
public class OracleDBStrategy implements DBStrategy{
@Override
public void dealConnection() {
System.out.println("oracle connection");
}
}
SqlServerDBStrategy.java
public class SqlServerDBStrategy implements DBStrategy{
@Override
public void dealConnection() {
System.out.println("sqlserver connection");
}
}
DBManager.java
public class DBManager {
public void connection(DBStrategy dBStrategy){
dBStrategy.dealConnection();
}
}
Test.java
public class Test {
public static void main(String[] args) {
DBManager dBManager = new DBManager();
DBStrategy mysql = new MysqlDBStrategy();
DBStrategy oracle = new OracleDBStrategy();
DBStrategy sqlserver = new SqlServerDBStrategy();
dBManager.connection(mysql);
dBManager.connection(oracle);
dBManager.connection(sqlserver);
}
}
输出结果:
mysql connection
oracle connection
sqlserver connection
对已以上三种数据库的连接操作是可以相互替换的。