策略模式Strategy Pattern

本文介绍了一种策略模式的应用实例,通过定义一个接口和多个具体实现类来实现不同职责的分配。员工A、B、C分别代表不同的职责,通过接口进行解耦,实现了策略之间的自由切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、
一个接口,多个具体实现类,一个容器(供用户使用,利用了接口的特性)
优点:高内聚低耦合,易于扩展,策略类之间可以自由切换
缺点:维护各个策略类会给开发带来额外的开销;调用者需要知道所有的策略类
二、具体实现
三个人上班,各有分工,

接口

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();
...

}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值