Draymonders / Code-Life

The marathon continues though.
27 stars 3 forks source link

设计模式 #82

Open Draymonders opened 4 years ago

Draymonders commented 4 years ago

样板方法

意义是复用共同的一部分逻辑处理

详见 HttpServlet 的 service 方法

class HttpServlet {

    void doService(req, resp) {
        String method = req.getMethod();
        if ("GET".equals(method)) {
            doGet();
        } else if ("POST".equals(method)) {
            doPost();
        }
    }

    void doGet(req, resp) {
        throw new Exception("not implements method get");
    }

    void doPost(req, resp) {
        throw new Exception("not implements method post");
    }
}

子类继承这个类,实现对应的doGet和doPost方法即可。

Draymonders commented 4 years ago

观察者模式 or 事件发布机制

是一种行为模式,用于解耦事件发布者和事件执行者的。即解决发布者一个事件,需要有多少事件执行者一块儿去执行

简易实现 https://github.com/Draymonders/IoC-Implement/tree/master/src/main/java/demo/pattern/eventmode

存在三种角色

Draymonders commented 4 years ago

代理模式

有三个对象,一个是接口, 一个实现类,一个是用于增强作用的代理类,代理类里必须有实现类的引用

静态代理

简易实现 https://github.com/Draymonders/IoC-Implement/tree/master/src/main/java/demo/pattern/proxy/static_proxy

动态代理

简易实现 https://github.com/Draymonders/IoC-Implement/tree/master/src/main/java/demo/pattern/proxy/dynamic_proxy