Navi組件化系統(tǒng)框架
Navi 項(xiàng)目介紹:
在過(guò)去的一年里,會(huì)員交易系統(tǒng)的下單服務(wù)進(jìn)行了徹底重構(gòu)。重構(gòu)后,在下單服務(wù)上對(duì)接新支付方式的開(kāi)發(fā)時(shí)間從過(guò)去的三天左右,變?yōu)楝F(xiàn)在的一小時(shí)左右,工作效率大幅提高。
這一成績(jī)的實(shí)現(xiàn)依靠的是下單服務(wù)的核心框架。這套框架能夠通過(guò)注解、文件等配置方式將不同組件動(dòng)態(tài)組合,形成復(fù)雜而又完整的功能。這套框架會(huì)根據(jù)聲明的路由配置,為每一次請(qǐng)求選擇合適的組件,從而實(shí)現(xiàn)高內(nèi)聚、低耦合的組件化設(shè)計(jì)。
為了能讓其它項(xiàng)目也能享受到模塊化設(shè)計(jì)的好處,我設(shè)計(jì)了 Navi 項(xiàng)目。Navi 項(xiàng)目將上述設(shè)計(jì)通用化,使得普通開(kāi)發(fā)人員也能迅速實(shí)現(xiàn)組件化系統(tǒng)。
核心價(jià)值:Navi 的核心價(jià)值在于能夠通過(guò)注解配置,實(shí)現(xiàn)類(lèi)似于 MVC 框架那樣的路由功能。使得開(kāi)發(fā)人員可以迅速開(kāi)發(fā)出組件化的復(fù)雜系統(tǒng)
如何使用:
@EqualMatcher(property = "clientType", value = "android")
@VersionMatcher(range = "[1.0.0,2.0.0)")
public class AndroidV1OrderCreateHandler implements OrderCreateHandler {
}
OrderRequest request = new OrderRequest():
request.setClientType("android");
request.setVersion("1.5.0");
// this handler is AndroidOrderCreateHandler
public class OrderCreateService {
public OrderCreateResponse createOrder(OrderRequest request) {
// ...
// Trunk Logic
// ...
// Branch Logic
OrderCreateHandler handler = selector.select(request, OrderCreateHandler.class);
handler.handle(request);
// ...
// Trunk Logic
// ...
}
}評(píng)論
圖片
表情
