帮我根据策略模式实现一个简易的java挂号系统
时间: 2024-01-22 07:04:04 浏览: 26
好的,以下是一个简单的Java挂号系统的策略模式实现:
1. 定义一个接口 `RegistrationStrategy`,包含一个方法 `register`,用于实现不同的挂号策略。
```java
public interface RegistrationStrategy {
void register();
}
```
2. 定义具体的挂号策略类,实现 `RegistrationStrategy` 接口,例如按照时间段挂号策略:
```java
public class TimeSlotRegistrationStrategy implements RegistrationStrategy {
public void register() {
// 实现按照时间段的挂号逻辑
}
}
```
还可以实现其他的挂号策略,例如按照科室挂号,按照医生挂号等。
3. 定义一个挂号系统类 `RegistrationSystem`,包含一个 `RegistrationStrategy` 类型的成员变量 `strategy`,用于保存当前的挂号策略。同时,提供一个 `setStrategy` 方法,用于设置挂号策略。
```java
public class RegistrationSystem {
private RegistrationStrategy strategy;
public void setStrategy(RegistrationStrategy strategy) {
this.strategy = strategy;
}
public void register() {
strategy.register();
}
}
```
4. 在客户端代码中,创建一个挂号系统对象,并设置相应的挂号策略,然后调用 `register` 方法进行挂号。
```java
public class Client {
public static void main(String[] args) {
RegistrationSystem system = new RegistrationSystem();
system.setStrategy(new TimeSlotRegistrationStrategy());
system.register();
}
}
```
这样,就可以根据不同的挂号策略进行挂号操作了。如果需要添加新的挂号策略,只需要实现 `RegistrationStrategy` 接口,并在客户端代码中设置相应的策略即可。