我想根據角色值,獲得相關的服務,如如何通過模式獲得價值服務?
LogisticsUserEntity user = this.getLogisticsUserById(userId);
UserDealService userDealService = getUserDealService(user.getRole());
UserEntity userEntity = userDealService.getUserEntity(user);
LogisticsUserDao和TruckOwnerDao都實現UserDealService接口。 如果角色是4,driverDao回報,如果是5,truckOwnerDao回報,但我已經使用
@Autowired
private DriverDao driverDao;
@Autowired
private TruckOwnerDao truckOwnerDao;
我不想使用的地圖,像
put(4, driverDao);
,因爲如果我想添加其他的dao,我必須修改代碼,這違反了開放關閉。
那麼我該如何解決擴展問題?
感謝您提前給予的所有幫助和建議。
看起來像使用工廠模式的經典案例。看看[工廠模式](http://alvinalexander.com/java/java-factory-pattern-example) – Phoenix
編寫一個「UserDealServiceFactory」..並自動裝入! ;) – xerx593