帮我用策略模式实现简易挂号系统
时间: 2024-02-11 13:09:12 浏览: 30
好的,下面是一个简单的医疗挂号系统,使用策略模式实现:
首先,我们需要定义一个挂号策略的接口 `RegistrationStrategy`:
```java
public interface RegistrationStrategy {
void register();
}
```
然后,我们可以定义一些具体的挂号策略,比如普通挂号和专家挂号:
```java
public class OrdinaryRegistration implements RegistrationStrategy {
@Override
public void register() {
System.out.println("普通挂号成功!");
}
}
public class ExpertRegistration implements RegistrationStrategy {
@Override
public void register() {
System.out.println("专家挂号成功!");
}
}
```
接下来,我们可以定义一个挂号系统类 `RegistrationSystem`,该类包含一个挂号策略的成员变量,并提供一个设置挂号策略的方法 `setRegistrationStrategy` 和一个执行挂号的方法 `doRegistration`:
```java
public class RegistrationSystem {
private RegistrationStrategy registrationStrategy;
public void setRegistrationStrategy(RegistrationStrategy registrationStrategy) {
this.registrationStrategy = registrationStrategy;
}
public void doRegistration() {
registrationStrategy.register();
}
}
```
最后,我们可以使用该系统进行挂号:
```java
public class Client {
public static void main(String[] args) {
RegistrationSystem system = new RegistrationSystem();
system.setRegistrationStrategy(new OrdinaryRegistration());
system.doRegistration();
system.setRegistrationStrategy(new ExpertRegistration());
system.doRegistration();
}
}
```
输出结果为:
```
普通挂号成功!
专家挂号成功!
```
通过使用策略模式,我们可以方便地切换不同的挂号策略,而不需要修改挂号系统的代码。