模板模式简单实现

原创
2017/11/17 11:35
阅读数 156

参考RedisTemplate实现简单模板模式

package cn.****.spider.core.utils;

import lombok.Getter;
import lombok.Setter;

/**
 * 功能:模板模式
 * 作者:刘**
 * 联系:********@gmail.com
 * 时间:17-11-17 上午11:13
 * 更新:
 * 备注:
 */
public class RedisTemplate {
    @Getter @Setter
    private String before;
    @Getter @Setter
    private String after;

    public RedisTemplate() {
        this.before = "前置处理";
        this.after = "后置处理";
    }

    public <T> T exec(Handle<T> handle){
        T value = null;
        System.out.println(before);
        try{

           value = handle.handle(new Redis() {
               @Override
               public void set(String key, String value) {
                   System.out.println(String.format("set key: %s, value: %s", key, value));
               }

               @Override
               public String get(String key) {
                   System.out.println(String.format("get key: %s", key));
                   return "value";
               }
           });
            System.out.println("handle result : " + value);
        }catch (RuntimeException e){
            e.printStackTrace();
            System.out.println("exception");
        }
        System.out.println(after);
        return value;
    }
    public interface Handle<T> {
        T handle(Redis redis);
    }

    public interface Redis{
        void set(String key, String value);
        String get(String key);
    }

    public static void main(String[] args) {
        RedisTemplate redisTemplate = new RedisTemplate();
        redisTemplate.exec(new Handle<String>() {
            @Override
            public String handle(Redis redis) {
                return redis.get("username");
            }
        });
    }

}


展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部