论坛首页 Java企业应用论坛

IoVC,一种新的编程思想

浏览 62294 次
精华帖 (0) :: 良好帖 (6) :: 新手帖 (17) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-04-02  
不管它是好猫还是坏猫,IoVC既然是新东西,就必然会有不完善的地方,比如前面讨论中提到的两个UIControl不能使用同一个id来绑定这个问题,也许目前不能绑定吧(俺还没试过,也不知道真伪,现在忙的很),但AOM团队就把它做成能用一个id来绑定又怎么了?这个设计不难吧?下面俺来越俎代庖一下,UIControlI是个接口,现在提供两个实现,一种是常规的,叫UIControlSimple,把它看成原来一个id只能绑一个时的实现,一个是新添加的,叫UIControlComposite,它持有一个view中所有该id对应的UIControlSimple实例,接下来,对UIControlComposite的所有操作,都被适配到真正的UIControlSimple上去了,这样ok吧?当然,这里还有问题,我希望我在其中一个ui上动作不会导致两个ui响应,这里还要做些特殊处理,可以偷偷摸摸的给具有相同id的ui渲染一个特殊标识出来,这样,就可以找到对应的UIControlI实例了。这个思路是否有问题,还请各位点评,俺要偷懒了,玩游戏去。。。
0 请登录后投票
   发表时间:2008-04-03  
anakin1978 写道
是你搞反了吧?是在bean的编辑器里检查,不是在页面的编辑器上检查啊,view里的id才是源嘛,只要bean中@bind了id就去看看view是否已经指定了这个id不成么?当然,这需要扩充java editor的能力,好像现在的editor都不能检查annotation中的字符串是否正确,AOM开发团队既然能做可视化编辑器,他们应该能做到这点的,只是这已经超出我知识范围,我就不坚持了。我退一步说,在运行期进行检查也可以啊,只要在运行期发现bind指定的id不存在,抛个明确的RuntimeException,有详细信息,如果我是用户,我想我是可以接受的。


我没有搞反。如果像你讲的这样,bean中指定了bind,view中一定要有,当然也是一种做法。但你也要考虑这样可能带来的问题,那就是这个bean很难用在不同的view中。我举个例子,假设你有个wizard,有5个步骤,分别对应5个view,你要么为每个view写一个单独的bean(这恐怕很难让人接受),要么就是每个view里都要有所有绑定,即使这些绑定该View用不到——你就要考虑怎么把他们在view上disable掉,不显示,也不参与validate之类的。

总之IoVC这样改变JSF的既有做法,我没有看出有什么好处,反而坏处一堆。你认为
JSF标准的 <command action="abc"> + getAbc()
和IoVC的 <command id="abc"> + @bind(id="abc") getAbc()
到底哪个比哪个更方便呢?
0 请登录后投票
   发表时间:2008-04-03  
anakin1978 写道
不管它是好猫还是坏猫,IoVC既然是新东西,就必然会有不完善的地方,比如前面讨论中提到的两个UIControl不能使用同一个id来绑定这个问题,也许目前不能绑定吧(俺还没试过,也不知道真伪,现在忙的很),但AOM团队就把它做成能用一个id来绑定又怎么了?这个设计不难吧?下面俺来越俎代庖一下,UIControlI是个接口,现在提供两个实现,一种是常规的,叫UIControlSimple,把它看成原来一个id只能绑一个时的实现,一个是新添加的,叫UIControlComposite,它持有一个view中所有该id对应的UIControlSimple实例,接下来,对UIControlComposite的所有操作,都被适配到真正的UIControlSimple上去了,这样ok吧?当然,这里还有问题,我希望我在其中一个ui上动作不会导致两个ui响应,这里还要做些特殊处理,可以偷偷摸摸的给具有相同id的ui渲染一个特殊标识出来,这样,就可以找到对应的UIControlI实例了。这个思路是否有问题,还请各位点评,俺要偷懒了,玩游戏去。。。



id是唯一标识符好不好。你至少要懂得换个属性成不成。
所以,你就别给AOM添乱了,人多厉害啊,你想到的他们能想不到么?

还有,IoVC既然是新的不成熟的东西,那就表急吼吼的自称什么新思想,比MVC更好的MVC……

金蝶本来根红苗正,不是我看不惯他,实在是他自己太浮躁。丫如果真腰板(技术)够硬,十个我也拿他没辙不是么。
0 请登录后投票
   发表时间:2008-04-03  
其实要一个属性绑多个id这种实现细节要做我想应该是不难的,只是目前这个版本没提供罢了。也许正如anakin1978兄所说,AOM2.0是IoVC的第一个实现,必然有不完善的地方。我跟踪过一下IoVC绑定的流程,事实上到最后它的实现是在restore view阶段恢复了组件树之后,根据绑定规则创建一个EL绑到组件对象上,因此在后续生命周期和标准JSF的流程是合二为一的,所以标准JSF能做的,原则上它都能做。只是目前它没有提供一种方便的语法让我们这样做而已。

事实上AOM2.0中有个标签叫@Validate,用来为组件绑定校验方法的,它就可以用
    @Validate(id={"first","second"})
    private void validate(FacesContext context, UIComponent component, Object value) {
    }

的形式把两个组件的校验行为绑到同一个方法上(以上代码来自AOM的示例rcdemo的CalcBean),只是目前@Bind没有提供这样的写法。希望下个版本可以完善吧。
0 请登录后投票
   发表时间:2008-04-03  
hax 写道
anakin1978 写道
不管它是好猫还是坏猫,IoVC既然是新东西,就必然会有不完善的地方,比如前面讨论中提到的两个UIControl不能使用同一个id来绑定这个问题,也许目前不能绑定吧(俺还没试过,也不知道真伪,现在忙的很),但AOM团队就把它做成能用一个id来绑定又怎么了?这个设计不难吧?下面俺来越俎代庖一下,UIControlI是个接口,现在提供两个实现,一种是常规的,叫UIControlSimple,把它看成原来一个id只能绑一个时的实现,一个是新添加的,叫UIControlComposite,它持有一个view中所有该id对应的UIControlSimple实例,接下来,对UIControlComposite的所有操作,都被适配到真正的UIControlSimple上去了,这样ok吧?当然,这里还有问题,我希望我在其中一个ui上动作不会导致两个ui响应,这里还要做些特殊处理,可以偷偷摸摸的给具有相同id的ui渲染一个特殊标识出来,这样,就可以找到对应的UIControlI实例了。这个思路是否有问题,还请各位点评,俺要偷懒了,玩游戏去。。。



id是唯一标识符好不好。你至少要懂得换个属性成不成。
所以,你就别给AOM添乱了,人多厉害啊,你想到的他们能想不到么?

还有,IoVC既然是新的不成熟的东西,那就表急吼吼的自称什么新思想,比MVC更好的MVC……

金蝶本来根红苗正,不是我看不惯他,实在是他自己太浮躁。丫如果真腰板(技术)够硬,十个我也拿他没辙不是么。

 

兄弟客气,“根正苗红”实不敢当。金蝶白手起家,靠技术靠拼命。老徐老蔡,三四十岁已头发花白。争得就是一丝基础软件血脉。 

 

中国人做点东西不容易,叫的响了一点,吼的急了一点也是希望有人关注。众人拾柴火焰高,以一家之力做好一个社区显然不实际。

 

各位低手高手高高手,恳请多些理解,少些嘲讽;多些宽容,少些争斗;多些建议,少些叫板。再怎么说,咱还都是黄皮肤黑眼珠。

 

0 请登录后投票
   发表时间:2008-04-03  
hax 写道

还有,IoVC既然是新的不成熟的东西,那就表急吼吼的自称什么新思想,比MVC更好的MVC……

金蝶本来根红苗正,不是我看不惯他,实在是他自己太浮躁。丫如果真腰板(技术)够硬,十个我也拿他没辙不是么。


我有时看着hax兄的逻辑就真的不知是哭好还是笑好。这个回贴不谈技术,只谈逻辑。一说技术最后又给扯到什么非技术因素上,闷。。。

IoVC既然是新的不成熟的东西,那就表急吼吼的自称什么新思想。 —— 思想和实现是有区别的好不好。就象hax兄的理想框架一样,思想新颖,考虑周全,而且如果做的话,功能将会非常强大。但是你一天不做,思想再高也没用,等到你哪天做出来了,我们再来探讨完善不完善,成熟不成熟的问题。但有一点我是挺肯定的,如果有一天hax兄真的挺身而出,组建一支团队,雄心勃勃地把理想中的框架实现出来之后,他会悄悄的在javaeye上脚踏实地的发个不起眼的小贴,说“小弟不才,做了个小小的程序,可以适度增强大家对MVC框架的理解,请大家赏脸帮忙试用。下载地址 www.334455.com,人格保证,绝无病毒,请放心使用。”

金蝶本来根红苗正,不是我看不惯他,实在是他自己太浮躁,(于是我看不惯他)。—— 一句话里面直接就前后矛盾了。

丫如果真腰板(技术)够硬,十个我也拿他没辙不是么。 —— 你现在拿人家有撤么?什么叫“丫如果。。。”
0 请登录后投票
   发表时间:2008-04-03  
---重复提交,编辑掉---
0 请登录后投票
   发表时间:2008-04-03  
令狐不冲 写道
兄弟客气,&ldquo;根正苗红&rdquo;实不敢当。金蝶白手起家,靠技术靠拼命。老徐老蔡,三四十岁已头发花白。争得就是一丝基础软件血脉。
中国人做点东西不容易,叫的响了一点,吼的急了一点也是希望有人关注。众人拾柴火焰高,以一家之力做好一个社区显然不实际。
各位低手高手高高手,恳请多些理解,少些嘲讽;多些宽容,少些争斗;多些建议,少些叫板。再怎么说,咱还都是黄皮肤黑眼珠。

说得好,hax貌似高人,放个框架到社区来让大伙瞧瞧?
0 请登录后投票
   发表时间:2008-04-03  
黄皮肤黑眼珠又怎么样了?日本人朝鲜人越南人都是黄皮肤黑眼睛。

我最烦扯什么民族大旗了。

我做不做框架跟我能不能批评AOM有什么关系?
0 请登录后投票
   发表时间:2008-04-03  
上星期刚参加北京的英雄大会,金碟的技术总监唯一的一场演讲就是这个项目,可以看出金碟高层对些项目的重视。

前两天从CVS上下载了项目源码,JSF组件设计相当的精巧与老练。实现相当漂亮,佩服一个~~赞一个先。

看了很多HAX大师与英雄们的讨论,想听听袁老大对此是什么看法,设计者什么想法。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics