前言
好久没更新之前的脚手架项目的文章了。其实我最近也写了蛮多的代码。在git记录里面可以看到,但是把demo转为实际的例子又需要一些语言表达,最近公司被迫9116,还没有补偿。也没什么心思写这个。最近准备重新准备一下面试,相对工作也会划水一点,打算把之前代码漏下的更新一下。
介绍
什么是上下文写法呢?想必在大家写代码的时候总会遇到,有一个逻辑特别复杂的代码。又是一线到底的逻辑,也不需要用到什么设计模式。但是就是复杂,判断多。一梭子写下来。一个方法500行。简直就是老太太的裹脚布,又臭又长。而且这种代码。刚写完的时候还看的懂,等过段时间,回头改的时候简直噩梦。其实简单的方法就是拆方法了。但是有的朋友会把代码拆的东一块西一块的。也很麻烦。这个时候就要用到我的这个上下文写法了。简单好用。让你的代码清晰易懂。
写法
//上下文类
public class Context {
//传入参数
private String params;
//中间参数
private String firstResult;
private String secondResult;
//结束参数
private String result;
//以下是get set方法
}
//方法执行类
@Component
@Slf4j
public class ContextTest {
public void execute(String params){
Context context = init(params);
first(context);
second(context);
result(context);
}
private Context init(String params){
Context context = new Context();
context.setParams(params);
return context;
}
private void first(Context context){
String params = context.getParams();
context.setFirstResult(params+"first");
log.info(context.getFirstResult());
}
private void second(Context context){
String params = context.getParams();
context.setSecondResult(params+"second");
log.info(context.getSecondResult());
}
private void result(Context context){
String params = context.getParams();
String first = context.getFirstResult();
String second = context.getSecondResult();
context.setResult(first+second);
log.info(context.getSecondResult());
}
}
//方法使用
//mvc层中@Resource注入其中,直接执行text方法即可
说明
大家可以看到在test()执行方法中,我们创建出了一个Context,这个方法。这个方法的参数分为3中,入参。执行,结果。我们每次进来的时候,使用init初始化出我们的执行类,然后通过入参拼接出执行类,比如这个时候可以查询数据库。查询RPC,然后通过方法1,方法2进行对应的逻辑操作,也就是我们上文中那个很长的方法的拆分。最后获得结果值。
效果
这样的话。每一段逻辑之间通过方法做出了区分,会显得逻辑分明,方法名也可以直接命名对应的逻辑行为,都可以减少一部分的注释呢。而且做改动和扩展的时候也只需要改动对应的小方法和上下文context即可。改动也很方法。甚至在将来方法重复度高的时候,上下文的写法也能很简单的进行设计模式的改动。这个问题我之后会讲到。end~