每本书都在吹嘘OOP,每个人都在吹嘘OOP,但在我见过的别人源码中,对于数据维护的实现基本上都是先定义一个父窗体,在其中定义一些Edit,Delete什么的方法,然后在具体的数据窗体(如雇员资料)中做相应的数据校验等逻辑处理.
看起来使用了继承,但这样就OO了吗?界面和业务根本没有分开,那些纸上谈兵的定义雇员对象的OO方法又应用在了哪里,似乎没有几个人知道.
那些自认OO方面有造诣的高手们又是如何应用的呢,给个应用实例让俺明白了重谢200分,不够再加
看起来使用了继承,但这样就OO了吗?界面和业务根本没有分开,那些纸上谈兵的定义雇员对象的OO方法又应用在了哪里,似乎没有几个人知道.
那些自认OO方面有造诣的高手们又是如何应用的呢,给个应用实例让俺明白了重谢200分,不够再加
这两本书,那才真正用到
将系统一些共性的操作,提取,然后装成一个基类 (在窗体的继承中指基类)逻辑判断在数据库操作中是针对TDATASET的(以TDataSet事件来触发),而不是界面,但同时为了界面的友好性也是要作一些处理的窗体继承,完全是一种面向对象的复用技术,与C#、JAVA不的只是这里将窗体文件当作一个类罢了OO的设计思想并不限于继承与重载或多态,更多的是将系统共性的东西提取或重组(有点是结构化思想了),从而与界面分离 即系统的框架设计
例:针对TComboBox.Items的操作,你完全可以将Items当作一个TStrings类来调用操作(在Delphi中TStrings类型是以指针的方式来传递的)没有所谓的标准OO境界,就像武侠小说中的,你的功夫,在一些更高的高手眼里,或许只能算作一些小孩的儿戏,实用才是最重要的(功能实现、开发周期、性能、扩展、操作友好性各方做出权衡&取舍)----------------------------------------------------------------------------
将一门高深的技术,以最简单最普通的形式表达出来,那才是真正的高手
写东西嘛,怎么简单怎么使
主界面尽量抽象公有操作、 自然 逻辑处理类就处理所有的业务逻辑了。
1、定义一个员工类(基本上是个数据类,或是带一个logon等的方法),一个员工管理类,一般有addemp,delemp,updateemp,findempbyID的方法。
2、按下[add]button后,进行基本的字段有效校验(是否为空),业务校验放在管理类中,通过后调用管理类的addemp(aemp: 员工类)方法。
明白了就给分嘛
begin
if f1 = nil then showmessage('nil') // why not show ?
f1 = nil ;
if f1 = nil then showmessage('nil') // showed
f1.free ; // no exception , why?
end
我本来用的就是窗体继承,但虽然是窗体继承代码和界面也仍然在一起呀,举个例子,如果现在要改三层架构,那我的业务不就剥离不出来了?
其实我的想法和beyondtkl(大龙驹<*study,think,work,gain MORE and MORE*>) 的差不我,只不过就是实际应用的时候不知如何开始
我想这是不正确的,请大龙驹能给一部分你应用的示例性代码给我学习一下好吗?谢谢了
[email protected]
界面层可能访问逻辑层提供的方法,并响应逻辑层的消息,逻辑层处理界面层提交的请求,从数据层得到数据或保存数据到数据层。界而层根本不知道数据层的存在。数据层的功能:
将表类化,根据表结构创建相应的Record 每一张表对应一个管理它的类,实现添加,修改,删除,查找的方法。逻辑层检查用户提交的数据格式,确定要返回的内容和执行的操作。界面里不会出现SQL语句,仅有调用逻辑层方法的语句和响应逻辑层的事件显示的语句。界面的继承在使用的时候真是应好好讨论一下是否有必要,最主要的是封装,哪些功能应放在一个类中实现这在很大程序上决定了程序的可重用性和可维护性。
所以如果你想学OO的话多看一些开源的一些大项目,那些代码质量还算很高的。对于我们用的Delphi来说VCL本身就是一个很好的例子,只要能静下心来学,还是能从中学习到不少知识的。至于能不能在实际工作中用,那就要看你所在公司的水平了。
不管怎么说静下心来多学点东西还是没错的。
我也正在学习中,共同努力吧。====CSDN 小助手 V2.5 2005年11月05日发布====
CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
下载:http://szlawbook.com/csdnv2
那就是我们编程的高境界了
另:saoren 的名字真难听。
什么时候需要oo yeah才oo yeah 啊
脱离了应用谈O,就是闭门造车
对象投到后台,由业务对象把它映射成 SQL 的 Insert 语句。 这是 OR 映射。这样就完成了一个保存的动作。
Tobject = class ... 有这样定义的 :Txxxx = class
也有这样定义的: Txxxx = class(Tobject) 两个区别在那,如果一样那还要TOBJECT干吗? 或者,为什么有的直接继承自CLASS 而有的从TOBJECT来?
没有去领的将只有将本贴的20分平分了
http://community.csdn.net/Expert/topic/4427/4427317.xml?temp=4.484195E-02
http://community.csdn.net/Expert/topic/4427/4427319.xml?temp=.7635462
这样就可以重用和扩展其实也没必要为OO而OO,能满足需求就行的,不必介怀究竟OO是用了还是没有用
delphi 高手突破
------------------------------------
这是两本属于专业低级别的书。李维的 面向对象实践
------------------
未看
其实也没必要为OO而OO,能满足需求就行的,不必介怀究竟OO是用了还是没有用
-------------------------------------
及其bs这样的说法。不懂就不懂,冠冕的话少说。
用过几天spring,不过delphi就没用AOP了,还是用OOP的。
感觉一般。