要做一个理财的小程序。
其中有四个表:1.入账表    2.出账表    3.预算表(每个预算计划为一行)   4.报告表(一个时间段的总结)    最基本的操作有:
1.入账 的添加、修改、删除、列表 
2.出账 的添加、修改、删除、列表  
3.预算 的添加、修改、删除、列表  
4.报告 的添加、修改、删除、列表(我为这四项设计了各自的类,也就是入账类、出账类、预算类、报告类,每个类里都有(至少)添加、修改、删除、列表四个方法)我第一个想法是为这个四个类各单独写4个方法,这些方法就直接对数据库操作了。
但是大家可能看到了,这四个类都有4种类似的操作:添加、修改、删除、列表,这样的话很多代码可能就重复了。
于是我设计了一个核心的类,让这四个类都继承它。这个核心的类里有(至少)如下四个方法:
1.添加 add($tableName,$array); //$array中的键名是表中的字段名,值是要写入该字段的值。$array为处理后的表单数据,不同的子类调用时可对$array再进行不同的处理
2.修改 edit($tableName,$array);//解释同上
3.删除 delete($tableName,$id);//$id是要删除行的id
4.列表 list($tableName,$array);//$array中的键名是要显示的字段,值是该字段应该在页面中显示的名称(如array('date'=>'日期','info'=>'备注') );其实思路很简单,本人经验有限,见笑了。
基本的设计就这些,但我不知道这样设计有没有需要改进的地方,或者有更好的设计方法,希望高手来指点! 

解决方案 »

  1.   

    呵呵,有搞uml吧?画图会清晰很多。
      

  2.   


    实话实说,UML还用着不习惯,现在还是比较低级地在纸上画画。foolbirdflyfirst给推荐个UML工具?或者哪有比较好的教程?另外上面你说的把这4个操作封装到数据库类,我感觉数据库都是底层的基本操作比如mysql_query,我要的这个类可能跟业务逻辑稍微有一点关联了,是不是单独建一个类更为合理。
      

  3.   

    我喜欢用jude,操作简单,要先装个java编译环境.
    其实这些add,edit,delete的操作,单表操作的话,所有的表数据操作都能用到,不局限于某个独立的module.所以可以考虑设计个单表操作类,继承于数据库操作的主类.