本人学了delphi一年,第一次写了一个购销存的demo(delphi+sql server). delphi 是一个OOP的开发语言,但整个系统中,只是在Form中用了面向对象的继承特性:即在BaseForm, BaseEntryForm等祖先Form中写了一部分例程供后代窗体使用,以简化重复工作。并在各个form中加入非感知编辑组件、数据集组件直接处理底层数据库中数据。如:从数据集中读取数据放到编辑组件中,用sql语句把编辑组件中的数据写入底层数据库等,为了编辑客户资料,创建一个新窗体,读取数据库的单条记录放在窗体中编辑;为了输入订单,创建了新窗体读取订单内容等虽然程序可以运行,但回头想想,这就是编程吗???? 是面向对象的编程吗??? 答案肯定不是。。
只是不懂得如何设计、编写系统而已。。不懂得如何符合MVC设计原则去编写强大、稳定、可扩展性的系统因为自已未曾在软件公司工作过,不懂得如何规划系统。现在真的好困惑,希望某些朋友能给点指导性的建议或者是demo让本人走出这个困惑,重写系统,真的不胜感激!!!
只是不懂得如何设计、编写系统而已。。不懂得如何符合MVC设计原则去编写强大、稳定、可扩展性的系统因为自已未曾在软件公司工作过,不懂得如何规划系统。现在真的好困惑,希望某些朋友能给点指导性的建议或者是demo让本人走出这个困惑,重写系统,真的不胜感激!!!
找到这一栏刷新 | 全文检索 | 搜索 | 提问| 未解决 | 已解决 | 精华区 | FAQ | 专题 | 帮助 |点提问
可否做个设计的sample给我?好让我不走歪路。不胜感激。。
面向对象编程的优势只有在大型系统才会体现出来,在一些简单数据处理方面还不如面向过程简单。比如你获取某个用户的权限,用一组函数就可以了,但你也可以设计成一个类。 实践出真知。
那你认为我现在的面向form编程处理数据库数据的方向是否正确??还是设计成面向对象编程。。做成一个个的类,然后在form中调用各类中的方法来处理数据????例如:创建如下各类
单据号生成器: 用于生成各单据的新单据号 .
客户类---用于与底层数据库交互,读取单条记录及所有客户列表,以及提供客户的贸易往来的询查。
至于如何把各种贸易往来分解为对象,本人就不会了希望得到某些高人指点还有:现在做企业管理软件的软件公司是如何设计及编写系统的呢??? 是使用面向对象分析方法把各要素分类,然后再编写form实现GUI . 还是面向过程直接在form中方法处理数据库中数据呢???
TBill (至少具有添加,修改,删除等共同的操作,单据状态,单据名称等共同属性..)
TSingleBill TMasterDetailBill
再下面是具体的单据。
上面说的仅仅是举个例子,具体的做要看你分析的程度。
单据号生成器: 用于生成各单据的新单据号 .
客户类---用于与底层数据库交互,读取单条记录及所有客户列表,以及提供客户的贸易往来的询查。
至于如何把各种贸易往来分解为对象,本人就不会了TDBObject = class(TObject)
public:
procedure Save();
procedure Delet();
end;TDBIO = class(TObject)
public:
procedure Load();
end;TObjectFactory = class(TObject)
public:
function CreateObject():TDBObject;
function CreateDBIO():TDBIO;
end;TBillCreator = class(TObject)
public:
constructor TBillCreator(TObjectFactory of);
destructor Free();
function NewBill():TDBObject;
procedure SaveBill(TDBObject obj);
procedure DeleteBill(TDBObject obj);
end;TClient = class (TObject)
public:
constructor TClientCreator(TObjectFactory of);
void LinkToBillObject();
// functions
end;搞定,收工
你上面说的:
Tbill (add,modify,delelete,check,load,save...)
TsingleBill TMasterDetailBill
是使用了delphi的继承属性,来减小重复的代码。。我的意思是: 到底是直接在各个Bill中的add,modify,save,check.load等方法,通过数据集组件Tquery,TStoresproc等直接与底层数据库交互数据; 还是先写一些类,把系统的各要素及业务逻辑封装起来,各个Bill的中方法再通过访问这些类中属性、方法与数据库交互??书店上许多关于数据库开发书上例子都是取用第一种方案写的,是使用面向对象语言+面向过程编程思想写出来的,我想真正的面向对象编程应该不是哪个简单。。
现在的软件公司或者有自已开发团体的企业,到底是取用哪种方案写系统的呢???有没有在软件公司工作过的朋友能提小弟一把,好让小弟继续上路。谢谢。
搂主可以把整个软件分层,比如三层(界面,业务逻辑,数据访问):
1,界面:主要是和用户交互,不涉及具体的业务逻辑,界面调用业务逻辑层操作实际的业务;
2,业务逻辑:可以用MIDAS或COM(COM+)等实现,比如商品购进等的处理,凡涉及到数据库处理的
地方都调用数据访问层实现对数据库的操作。
3,数据访问:也可以可以用MIDAS或COM(COM+)等实现,除了数据库访问的基本功能外,
还要处理诸如数据库的移植(从MySQL到OROCAL)、表字段的增删不能影响到业务逻辑层以及事物处
理等等。
还要处理诸如数据库的移植(从MySQL到Oracle)、表字段的增删不能影响到业务逻辑层以及事物处
理等等。
复:qiume(杜克[在Coder和Designer之间徘徊]) 现在是使用BDE,计划在3月分后学习分布式业务处理,dbexpresss访问机制本人在软件分层及实现这方面绝对是个门外汉,可否送个demo给我,让我继续上路。先谢了
//
数据库访问用BDE、ADO、或dbexpresss与软件分层没有关系,因为与数据库打交道的只有数据
访问层;软件Demo都属于公司,不属于个人。
可不做个简单的不属于公司的demo给我? ^_^有没这方面实战的书介绍?
1.面向对象编程思想和面向过程编程思想这两种思想不是对立的.
2.Delphi只是为了加快程序员的开发进度,很多东西都帮你做了,你做的工作很简单,但就不能说你进行的编程就是"使用面向对象语言+面向过程编程思想写出来的".
3.Delphi的VCL本身就体现了面向对象编程的精髓.
4.我的意思是: 到底是直接在各个Bill中的add,modify,save,check.load等方法,通过数据集组件Tquery,TStoresproc等直接与底层数据库交互数据; 还是先写一些类,把系统的各要素及业务逻辑封装起来,各个Bill的中方法再通过访问这些类中属性、方法与数据库交互??
呵呵,建议采用前者.任何东西的使用都是有个度的,太过了,就迂腐了.
复:qiume(杜克[在Coder和Designer之间徘徊])
可不做个简单的不属于公司的demo给我? ^_^有没这方面实战的书介绍?
//
最近比较忙,推荐你看Java和.NET的例子,网上多的很。