Jam*_* P. 4 java model-view-controller swing actionlistener
对于路由操作请求,我想为所有组件使用单个ActionListener实例.可以使用setActionCommand区分对actionPerformed的调用.
这是建议吗?在MVC环境中,这种方法是否有任何潜在的缺点?
MVC只要求分割M,V和C.但它并没有要求某种关系的基数.所以你可以自由地去.
如果事件处理方法中的switch逻辑变得太复杂(比如几行),你可能想要考虑将一个巨大的类拆分成多个类.提供更好的概述和维护.相信我:如果你回到一个简单的听众来改变它,你会非常高兴.那将是一个重构 ; 您的IDE可能会提供相应的支持.
所以我的建议是:KISS - 先把它做成一个简单的把你的东西放在一个听众中.如果它变得太复杂:再次使它变得简单,并重构为多个Listeners(这将是KISS的另一个应用程序).
只记得保持代码简单,不要懒惰创建类.创建一个类比回到复杂的代码更简单.永远记住:创建软件是20%,维护是80%.使代码现在易于理解,以后维护将变得简单.相反的情况也适用.
" 这是建议的吗? "我想不到,但很多将取决于你的项目规模.
我想起了"把你所有的鸡蛋放在一个篮子里"的说法.
if当您向其添加新的操作分支时,语句的大小可能会变得难以想象.当您的项目复杂性增加时,您将采取行动处理程序.
调试潜在问题也可能成为头痛的问题.
代码的维护将变得乏味且容易产生误解,并且不会导致逻辑中出现新的错误.
你打破了责任分离规则(你应该尝试分离责任,管理自己的对象/类中的一个动作/事件)
如果您正在寻找重用动作处理程序的方法,请查看Action API.如果您真的很渴望,可以使用工厂通过代码生成熟知的操作.这样可以在保持责任隔离的同时重复使用.
从个人的角度来说,不得不花费最近3年的时间来解开一个没有经验的毕业生的混乱,他们将核心库写入我们的系统并且喜欢这样编码,请不要.这很容易打破,很难阅读,只是一个简单的混乱.
恕我直言,它说缺乏/或无法设计.
根据我的经验,这只是我的个人意见
| 归档时间: |
|
| 查看次数: |
173 次 |
| 最近记录: |