讨论:如何使软件结构更加合理。界面代码分离、模块划分(300分)

  • 主题发起人 主题发起人 lcl_003
  • 开始时间 开始时间
L

lcl_003

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟水平很菜,看了些oo的书,理解不是很深总是结合不到实践。前几天看到一篇关于界面代码分离的帖子,有些想法。至于这么做的好处我当然知道,但是我就不明白了,代码中难免要对界面里的控件进行操作,这样如何才能使界面和代码真正分离?
关于模块的划分问题,有的时候划分可以按照窗体或者功能来划分。对于相对独立的部分划分起来比较容易,但是有的部分和其他部分是有联系的,这时候如何来划分呢?
各位老大来讨论讨论,有价值的另送分:)
 
在codelphi上有一文章,说的是mvc设计方法,你找找看看,
 
模块是面向过程时代的产物,面向对象中的类将取代它。
界面代码分离只是类封装性特点的一种体现。
模块划分是过时的概念,现在是类模块的划分。
 
当然是要先写一些自己的基类了,如数据库的查询、修改等等吧。。。。总不能让你的SQL在代码中漫天飞吧。。。
 
哎~~~~~~~~~~~看了看codelphi上的mvc 的文章,好象有些开壳了,但还不是很明朗,那位大哥有好的代码并带有注释的给小第欣赏一下?
不要很大很完整的代码,只要能体现出界面和代码分离就行。
 
建议看看这个帖子,也许有点帮助:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1703563
 
要界面和代码分离,简单一点就是用TActionList控件,把大部分代码都集中起来管理
实际上DataAware-DataSource-DataSet的结构就是代码和界面分离的好例子
DataSet负责数据操作,DataWare是界面。
具体要靠自己多实践。
听别人说十句不如自己写一行代码
 
不懂业务和客户需求的话,
谈软件结构只是空中楼阁而已,
 
老大,我当然是写了一段时间程序之后才有这个想法的啊:(
 
同意楼上的。DataAware-DataSource-DataSet确实是一个很好方法,如果把Form上的编辑和显示控件都做成DataAware的,界面部分可完全不用考虑数据操作。
 
扯了半天,举个例子吧
一个窗体里有edit,combobox,listbox若干,要把edit,combobox,listbox里的内容都存到文本文件里。如何实现?存储和读取都要有哦
 
等你重复劳动做到一定的程度,
自然知道怎么做了,
别人告诉你怎么做,你是体会不到的,
大富翁论坛没有这种问题的答案的,
 
大大翁你个老东西[:D][:D]嘿嘿~~~~~~~~~
 
:IE中只能打开首页,无法打开任何下一级链接是怎么回事。
 
大大翁前辈,想和你做个忘年之交,QQ:32661149,可否
 
可以考虑把所有的操作封装到一起,界面上的操作由封装的对象去完成。
完全分离没有必要,也很烦。
 
老大们,给两行代码,不要很多,表示出意思就行
 
总的来说明,界面与完成的功能分离,就要做到不论换成什么界面,不需要重写与实现功能的代码。
简单例子:
// 封装的操作 
TMyOperator = class(TObject)
public
procedure Save(FileName:String);
procedure Load(FileName:String);
...
end;

// 界面上的应用
procedure TForm1.Save;
begin
....
MyOperator.Save( FName );
end;

procedure TForm1.Load;
begin
....
MyOperator.Load( FName );
end;
 
我也在研究,希望负多交流.
我认为在设计中,可以吸取网络分层的理念,按实现的功能分成界面层,界面业务逻辑接口层,业务逻辑层,数据访问层,通过这种纵向分层后,各个部分功能独立,每一层通过接口访问下一层,只要接口不变(接口可以为过程,函数,类,接口),每一层的修改将独立于界面调用,通过界面逻辑层,可以实现界面级别的代码重用,通过业务逻辑层,可以实现业务功能级的重用.
我要回家了,下次再来.
 
找到了告诉我,我也在研究
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部