一、
一个接口,多个具体实现类,一个容器(供用户使用,利用了接口的特性)
优点:高内聚低耦合,易于扩展,策略类之间可以自由切换
缺点:维护各个策略类会给开发带来额外的开销;调用者需要知道所有的策略类
二、具体实现
三个人上班,各有分工,
接口
具体实现类,策略类
容器:公司,封装类
功能实现
一个接口,多个具体实现类,一个容器(供用户使用,利用了接口的特性)
优点:高内聚低耦合,易于扩展,策略类之间可以自由切换
缺点:维护各个策略类会给开发带来额外的开销;调用者需要知道所有的策略类
二、具体实现
三个人上班,各有分工,
接口
public interface IJob{
public void doSomething();
}
具体实现类,策略类
//员工A负责调研
public class A implements IJob{
public void doSomething(){
System.out.println("我要去北京调研");
}
}
//员工B负责开发
public class B implements IJob{
public void doSomething(){
System.out.println("我是开发的");
}
}
//员工C负责测试
public class C implements IJob{
public void doSomething(){
System.out.println("我是测试的");
}
}
容器:公司,封装类
public class Company{
private IJob job;
public Company(IJob job){
this.job=job;
}
public void toDo(){
this.job.doSomething();
}
}
功能实现
public class Demo{
public static void main(String args[]){
Company c;
//公司的测试部
c=new Company(new A());
c.toDo();
//公司的研发部
c=new Company(new B());
c.toDo();
...
}
}