如何避免将写过程式代码

如何避免将写过程式代码

这是我在写理才网的应用管理平台时候获取的教训。

我们先来看一个简单的应用提交的模型:

其中类Application是单纯的数据类,所有的业务都集中在了ApplicationService,如果这个程序没有迭代的需求当然这是一个很好很简洁的代码,但是一旦我们增添一个需求,比如我的应用是有多种类型的,某些类型做一些操作,另一些又不用,还有一部分公用的操作,我们看看上图的简单模型会变成如何:

这个时候我们会往Service的具体方法做如下处理:

If(application.getApplicationType()==type1){

//dosomething

}else if(){

//dosomething

}………………

只是增加了一个需求,代码就开始变得臃肿起来

另一种做法是什么呢我们来看看:

这种做法就是将不同类型的Application建立不同的数据类,每个数据类的Service方法都不同,这样也可以做到简单,但是不简洁,Service的膨胀依旧存在,而且比原来更加突出。最后就会变为,每种Application的类型都有一个对应的ApplicationTypeNService。不知道在阅读本文的各位有没有想过如何用C语言写出面向对象的代码。实际上就是如同最后一种方法所说,每个方法的第一个入参是一个结构体指针。

既然我们都已经采用了Java这样的面向对象语言,为何不直接利用起来呢。

我们看最后面的这个方法如何改造:

这个时候我们把公共的一些方法放在了基类Application中,不同类型的Application的特殊操作放在了其实现类中,相对于前两种方式就十分的简洁,并且实现种也极大的减少了if-else语句