Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- trait ICampaign {
- private Logger logger = LoggerFactory.getLogger(getClass());
- void onRegister(User user) {
- logger.info("{} register" , user)
- }
- void onLogin(User user) {
- logger.info("{} login" , user)
- }
- void onLogout(User user) {
- logger.info("{} logout" , user)
- }
- }
- class Campaign2016 implements ICampaign{
- private Logger logger = LoggerFactory.getLogger(getClass());
- @Override
- void onRegister(User user) {
- logger.info("{} registered" , user)
- Bonus b = new Bonus(user: user , value: 0).save()
- Bonus b2= Bonus.findByUser(user)
- b2.value = b2.value + 10;
- }
- // 沒比要實作的,就不用寫(用 trait default 的即可)
- // @Override
- // void onLogin(User user) {
- //
- // }
- //
- // @Override
- // void onLogout(User user) {
- //
- // }
- }
- @Transactional
- class CampaignService {
- private ICampaign ic = new Campaign2016();
- def onRegister(User user) {
- ic.onRegister(user);
- }
- def onLogin(User user) {
- ic.onLogin(user);
- }
- def onLogout(User user) {
- ic.onLogout(user);
- }
- }
- class TestController {
- def campaignService;
- @Transactional
- def register() {
- User user = new User(
- username : RandomStringUtils.randomAlphabetic(6) ,
- password : RandomStringUtils.randomAlphanumeric(8)
- ).save();
- campaignService.onRegister(user)
- render "register OK"
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement