Java回调通知

模拟场景:模拟用户注册成功后,给用户发送短信通知。

实际场景:微信支付成功后,通知我们支付结果;网络连接时,连接成功告诉我们连接结果。


JAVA 监听者模式 代码示例

 1. 创建一个回调接口

// 事件通知
interface Event {

    callback(Boolean b)

}

2. 模拟业务逻辑实现

// 模拟用户实体的实现类
class UserServiceImpl {
    // 注册
    static def register(Event event) {
        println '开始注册'
        Thread.sleep(5000L)    // 模拟注册耗时
        Boolean b = true // 注册结果

        event.callback(b)
    }
}

3. 模拟异步调用注册结果

static void main(String[] args) {
    def event = new Event() {
        @Override
        def callback(Boolean b) {
            println("注册结果 $b")
            if (b) {
                // 发送短信通知
                println '正在发送短信'
            }
        }
    }
    UserServiceImpl userService = new UserServiceImpl()
    userService.register(event)
}

4.打印结果

开始注册
注册结果 true
正在发送短信

groovy 闭包 代码示例

1.创建一个存放公共对象的地方

// 公共对象
class Entity {

    public volatile static Closure closure

    static void getResult(Closure closure) {
        this.closure = closure
    }
}

2. 模拟业务逻辑实现

// 模拟用户实体的实现类
class UserService {
    // 注册
    static def register() {
        println '开始注册'
        Thread.sleep(5000L)    // 模拟注册耗时
        Boolean b = true // 注册结果
        Entity.closure(b)
    }
}

3. 模拟异步调用注册结果

static void main(String[] args) {

    Entity.getResult { b ->
        println "注册结果 $b"
        if (b) {
            // 发送短信通知
            println '正在发送短信'
        }
    }

    UserService userService = new UserService()
    userService.register()
}

4. 打印结果

开始注册
注册结果 true
正在发送短信

你可能感兴趣的:(java,java)