关于业务分层
业务分层思想
根据MVC分层思想,我们的项目都会分成3层,而业务层是在M里面的。
现在的项目都会把M分层两层即
DAO
层(持久层)和
Service
层(业务层)。
由于业务的发展,
Service
层里面的业务会越来越复杂,这个时候为了保持
Service
层方法的抽象层次一致性,一般我们都会写成堆成堆的
private
方法,举个例子。
public class OrderServiceImpl implements OrderService{
public void createOrder(){
checkActivity();
createOrderInfo();
createTrade();
}
private void createOrderInfo(){
createOrderInfo();
createSkuInfo();
}
private void createOrderInfo(){
//创建订单信息
}
private void createSkuInfo(){
//创建订单对应单个SKU信息
}
private void createTrade(){
//调用支付接口,创建支付信息
}
private void checkActivity(){
//调用活动接口,看该订单对应的商品是否有活动信息
}
}
createOrder()
方法中保持了抽象的一致性(增加代码的可阅读性,方便维护),但是里面的私有方法
createOrderInfo()
里面里面又有一个私有方法。如果这种情况很多的话,那么这个类就会变成一个私有方法很多的类。这个时候我觉得应该在
service
和
dao
中再增加一层,该层的抽象层次在
service
和
dao
之间。这样子的话,我们就可以把一些业务封装在该层,增加代码的可读性和维护性至于扩展性我目前还没有想到哪个场景可以增加扩展性。
不知道你们对这个是怎么看的。
故乡的茶干
10 years, 1 month ago