说实话我的技术…不怎么样,很多文章虽然自己写了,但是有很多是搬砖过来的,所以在1024我就不写技术文了,写一些自己的构思,思想(瞬间感觉有点高大上了);
一、为什么想到优化三层架构说句实话,不是突发奇想,而是很久之前就有这个想法了,三层架构已经很完善了,这里也不是优化,就是自己的一些想法,我争取以后写自己的工程,就按这个构思来,看看会不会更好;
二、怎么优化 一、自认为的三层架构弊端 1、耦合度还是有点高说个例子,service有一个查询方法,现在controller层有两个方法要调用这个方法,一个需要判断,一个不需要判断,那么service的逻辑怎么写?写不写判断?怎么写?在service查询方法上写?这样不就打扰到不需要判断的方法了吗…自己单写一个?但是明明都是重复的代码啊…或者在service单写一个方法调用这个查询方法?这也是一种办法,但是service层就乱了,想找个公共方法还得看半天代码;
2、数字指向不明确我就啥都不说,就是一行代码
if(state==1){}
请问这个1代表什么?????懵逼不?有注释还好,要是没有注释嘞?
其实对这个的优化,我很不自信,因为有太多的优化方式了,但是我还是想表达出来,大家可以给点意见,后期自己改改也很好;
说白了,就是在加一层logic层,单存的写逻辑;
controller只做控制,service只做公共方法,logic层专门写逻辑代码,这样就把公共方法给提出来了,其他人调用的时候直接自己在logic写自己的代码,自己调用就行了,互不打扰,如果logic中发现了公共的部分,那么在提取到service中就可以了;
logic可以直接加@service注解,因为完全没有必要自己写一个注解,而且自己写得注解也不通用,咱们不就是踩在巨人的肩膀上前进的嘛,没必要给自己找麻烦;
第二点其实比较简单,就是创建一个常量池;
public class Constant{
public static final int YES_DELETE_STATE = 1;
public static final int NO_DELETE_STATE = 2;
}
将上面的代码改造
if(state==Constant.YES_DELETE_STATE){}
是不是一目了然了!!!!!
并且给出规定,一个常量只能代表一个意义,也就是说,可以出现两个都是1的常量,但是绝不能出现一个常量代表两个含义的常量;
没有什么可总结的,就是自己的想法,大家有想法的,可以多多评论,后期我会针对评论进行探讨,优化,最后希望能出来一个可行的方案;



