1. 程式人生 > >回調模式【其他模式】

回調模式【其他模式】

execute override java trac pre assert abstract protected 語言

回調模式

@Slf4j
public class CallBack {

    /**
     * 回調模式更適合於函數式編程語言。
     */
    @Test
    public void all() {
        final SimpleTask task = new SimpleTask();
        task.execute(r -> {
            log.info("do callback");
            assertEquals("hello", r);
        });
    }
}

// 1)定義回調接口
interface ICallBack {
    void call(String t);
}

@Data
abstract class Task {
    private String result;

    public void execute(ICallBack callBack) {
        dowork();
        callBack.call(result);
    }

    protected abstract void dowork();
}

@Slf4j
class SimpleTask extends Task {

    @Override
    protected void dowork() {
        log.info("dowork now");
        setResult("hello");
    }
}

回調模式【其他模式】