代码中有很多业务方面的常量,好像不方便修改或重构

solar.xie 发布于 2013/05/16 00:19
阅读 332
收藏 0

@JFinal 你好,想跟你请教个问题:

我看到代码里用到很多字符常量(model,control等),作为企业开发应用,开发阶段,经常会变化需求或调整设计等,好像不方便修改(重构)代码

加载中
1
紫电清霜
紫电清霜

引用来自“solar.xie”的答案

我不是讲JFinal源代码,我是讲利用JFinal的应用开发代码,如从介绍的代码看

public class BlogController extends Controller {
    public void index() {
        setAttr("blogList", Blog.dao.find("select * from blog"));
    }
...
public class BlogValidator extends Validator {
    protected void validate(Controller controller) {
        validateRequiredString("blog.title", "titleMsg", "请输入Blog标题!");
...
不过话说回来,JFinal特点是快速开发,这样比较直接简单,没有“绕”。主要缺点是后期维护不大方便,开发阶段还好,开发人员还记得被引用得地方。

上述代码只是用来展示用法的,实际使用的时候,可以继续优化,例如:

Blog.dao.find("select * from blog")这样的出现过sql之类的代码可以单独抽取作为一个方法放入Blog中。

紫电清霜
紫电清霜
回复 @泰元 : 嗯嗯。
-大白菜-
-大白菜-
按业务模块或是结构分层有利于架构后期的维护
0
JFinal
JFinal

具体是哪些常量呢,提出来,我方便回答。JFinal 中定义的常量与业务没有关系,非特殊需要不需要理会,例如:

1:Controller 中private static final String NULL_URL_PARA_ARRAY = new String[0]常量纯粹是为了减少对象生成,提升性能而定义的一个不可变对象

2:Model中并无定义字符串常量



0
solar.xie
solar.xie

我不是讲JFinal源代码,我是讲利用JFinal的应用开发代码,如从介绍的代码看

public class BlogController extends Controller {
    public void index() {
        setAttr("blogList", Blog.dao.find("select * from blog"));
    }
...
public class BlogValidator extends Validator {
    protected void validate(Controller controller) {
        validateRequiredString("blog.title", "titleMsg", "请输入Blog标题!");
...
不过话说回来,JFinal特点是快速开发,这样比较直接简单,没有“绕”。主要缺点是后期维护不大方便,开发阶段还好,开发人员还记得被引用得地方。

JFinal
JFinal
其实个人的实践证明,反而维护更方便,要改个东西不用源码配置之间跳来跳去,改东西很直接
JFinal
JFinal
jfinal可以让你自由发挥,你可以将这些常量写在外部配置文件中只要你不觉得麻烦。基本可以确定你还会回到jfinal提倡的方式中来的⊙▽⊙
返回顶部
顶部