监听者模式特点: A.处理步骤,典型一对多关系 B.处理步骤之间并无关联性,每一个都是独立的处理
场景: 1.操作订单的时候,有加积分 减账户金额 开通会员 2.消息订阅操作
代码如下:
1.Service的接口:
public interface ObService {
void getMessage(String message);
}
2.Observer的监听者的实现:
@Slf4j
@Service
public class CoinOberviceImpl implements ObService {
@Override
public void getMessage(String message) {
log.info("生成一张订单 : {} 账号服务的操作.", message);
}
}
@Slf4j
@Service
public class HyObServiceImpl implements ObService {
@Override
public void getMessage(String message) {
log.info("生成一张订单 : {} 会员服务的操作.", message);
}
}
@Slf4j
@Service
public class JfOberviceImpl implements ObService {
@Override
public void getMessage(String message) {
log.info("生成一张订单 : {} 积分服务的操作.",message);
}
}
调用服务类内容:
@RunWith(SpringRunner.class)
@SpringBootTest
@ActiveProfiles("test")
public class ServiceTest {
@Autowired
List<ObService> list;
@Test
public void test() {
String message = "Order订单";
for (ObService obService : list) {
obService.getMessage(message);
}
}
}
结果:
INFO - 生成一张订单 : Order订单 账号服务的操作.
INFO - 生成一张订单 : Order订单 会员服务的操作.
INFO - 生成一张订单 : Order订单 积分服务的操作.