hur.cn - 华软网

 热门搜索

PB支持静态方法、反射吗?大家怎样实现业务逻辑分离?

  作者:未知    来源:网络    更新时间:2019/7/30
PB2年多了,存留以下问题:
1、PB支持静态方法吗?  如果说share变量能够算静态变量的话,那PB支持静态方法吗?                                                                       2、PB支持反射吗?  既然能够用classname函数取得类名,那怎样根据类名实例化这个类呢?对于可视对象,能够调用openuserobject(),那对于非可视对象呢?       3、PB怎样实现业务逻辑分离呢?咱们公司的基类基本只是封装了些经常运用界面和控件,做成一个个插件式的架构,但业务逻辑却不怎么能重用。数据窗口好象封装了太多东西,怎样把界面和业务分离呢?                                              希望高手能指点一下,大家能顶起,究竟用PB实现简单快餐式编程,不是我所愿意的。分不够,能够再开贴
------华软网友回答------
呵呵 这个问题嘛 不太好回答
------华软网友回复------
1.非可视对象把autoInstantiate属性打勾就能够静态调用该类的方法。
2.能够用create using classname.如   ls_objectname = "n_file_service_class_ansi"
lnv_fileservice = CREATE USING ls_objectname
3.能够分离,这个一句两句说不清楚,游刃有余。这个和语言基本没关系,什么语言都能够分离。

------华软网友回复------
1,你说的静态方法是指的什么?如果是不创建对象就能够直接调用方法,就像java中的static类型方法一样,是能够的,不过一般情况下,这样的方法都封装在非可视用户对象中,只需把这个对象的自动实例化选中就能够了.
2,当然能够实现所谓的反射,至于如何根据非可视用户对象的名称(字符串)实例化对象,代码以下:
string ls_nvoname
ls_nvoname="nvo_object"//nvo_object是你的一个非可视用户对象
NonVisualObject nvo
nvo = create using ls_nvoname
下面就能够调用nvo_object的方法了,当然,你直接写
nvo.of_myfunc()这样的方法肯定是不行的,保存的时候会报错.
你需要这样写
nvo.function dynamic of_myfunc()
不过,你最好将这句写到try语句块中,这样,如果万一你的nvo_object对象中没有of_myfunc方法,也不至于会抛出runtimeerror异常.
3.这个问题就欠好说了,要想实现界面和业务逻辑的分离,需要对界面和控件举行高度的抽象和封装,这需要长时间的积累,不是我这里几句话就能说清楚的.
------华软网友回复------
我就是觉得pb没有事件代理,这是个遗憾
------华软网友回复------
呵呵
1、我指的静态方法是指,该类一部份方法是静态的,一部份是非静态的。
2、界面和业务分离,怎么用数据窗口呢?比如不可能用一大堆数据填充用户对象吧?能不能写一个简单的例子?
------华软网友回复------
反射另有个最重要的功能是,获得类的信息(比如方法、字段等),PB支持吗?
------华软网友回复------
PB实现非常难啊,delphi能够啊
------华软网友回复------
呵呵那我只关注最后一个问题了。
2、界面和业务分离,怎么用数据窗口呢?比如不可能用一大堆数据填充用户对象吧?能不能写一个简单的例子?
高手献身啦:)
------华软网友回复------
高手呢?HELP
------华软网友回复------
你说的对照高深,我没看明白,能用大白话说吗
用大白话告诉咱们你想做什么,实现什么功能
------华软网友回复------
呵呵就是MVC模式!想用用户对象建立一个个类,这些类里,只措置惩罚业务逻辑,不存留SQL后台措置惩罚,和前台显示的信息。
1这些业务逻辑需要的数据,既能够从资料也能够从数据库获得。
2这些业务逻辑展示的界面,既能够是GUI控件也能够是其余形式,比如输出资料等等
然则好象这样分离,就不能施展数据窗口的优势,有其余好的方法吗?
------华软网友回复------
pb是打开数据库的金钥匙,但其余功能相对较弱
按你的说法,你想用个万能钥匙,pb做起来对照困难
选一个其它类型的编程软件吧,多的是啊delphi java c#都能够啊
------华软网友回复------
呵呵谢谢指点。我只是觉得不能每次都重复编写一些相同的功能
------华软网友回复------
妈的,每次发话以前都先“呵呵”看着就不爽。
------华软网友回复------
此次用‘哈哈’,哈哈哈哈哈哈。。。。
------华软网友回复------
问得好
------华软网友回复------
pb当然能够实现反射出函数的定义,包括参数列表。
运用ClassDefinition和ScriptDefinition对象,详细的你能够参照pb的帮助。那里说的很详细。
------华软网友回复------
谢谢小鸟的关注。能再指点一下这个问题吗?
界面和业务分离,怎么用数据窗口呢?比如不可能用一大堆数据填充用户对象吧?能不能写一个简单的例子?
------华软网友回复------
我将于3天内结帖,盼望大家的指点,谢谢
------华软网友回复------
用pb还想用mvc,你能够展示层只做显示,
传导m只用主键,横竖你前边只显示不存留资源竞争,
你后边再选择一遍有什么问题吗?
你搞个结构体传以为也绝对没问题,
但你以为啥“麻烦”?
如果没有dw呢,究竟是麻烦照旧你懒?
------华软网友回复------
AFIC(A Foolish In China) 说的有事理,完全的分离是不可能的,就算java的或则c#的mvc开发方法,也不可能100%隔离,由于有时候还要思量编程的灵活性和代码成本.
但界面和业务分离肯定是没有问题的.我自己的开发框架就是这个思绪,基本上实现大部份的界面和代码分离.自己总结吧,各人的情况不同!
------华软网友回复------
小鸟。。我所理解的,是否是每一个业务对象都要捆绑一个数据窗口取数?
------华软网友回复------
学习一下。
------华软网友回复------

小鸟。。我所理解的,是否是每一个业务对象都要捆绑一个数据窗口取数?

  
----------------------------
你需要数据照旧界面?只需数据用datastore要快很多了,甚至直接用sql语句。
------华软网友回复------
我需要的,只是把业务对象分离出来,实现业务功能的重用。看来要下周一结贴了
------华软网友回复------
应该算数据吧。我所指的不是数据窗口控件,而是数据窗口,用datastore的确要好些。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。