MVC的问题

11 篇文章 0 订阅

MVC是三个单词的缩写,分别为: 模型(Model),视图(View)和控制Controller)。 MVC做为一种优秀的设计模式,或者框架被广泛应用,今天不谈MVC的种种优点,谈谈它的缺点。

MVC最主要的缺点是使用的复杂性,对初学者来说较高的学习曲线,很多熟悉MVC模式的人大都从它的强大功能和数据分离的观点来辩护,然而,这些没有说到点子上,复杂性或者说易用性总是一个框架或者类库能否让人广泛接受的重要原因,Java的GUI类库从AWT到Swing,后来有出来了IBM的Eclipse,从类库的发展和演变来看,没有一种类库是完美的和不可替代的,事实上AWT类库使用起来还是非常方便的,很多人会怀念Applet盛行的时候,AWT当时是应用非常广泛的,Swing的设计目标是取代AWT,然而,从Swing类库的开发到目前的阶段,质疑就一直不断,Swing框架的问题是过分强调它的优点,忽视了它的缺点,这就在一定程度上成就了Eclipse,Swing类库的设计目标是可以换皮肤的,然而,实际过程中,对客户来讲,对界面和皮肤的更换和界面的美观程度相比,后者更为重要,维护一套非常漂亮的皮肤要远远胜于多套不是很专业的皮肤,而一开始这就不是Swing类库设计的目标,对Swing的设计师来讲,这就造成了工程的重点没有放在最重要的事情上,增加了大量的代码维护负担,而对于Swing推崇的MVC框架,由于在设计过程中过于注重框架,忽视了界面,也造成了客观的后果,界面不够专业,而这却是GUI的核心,观感,用户体验,这些在互联网时代,尤其是Web和移动平台界面已经做到了极致,Eclipse某种程度上能够得到广泛的应用,界面是关键,而最新推出的JavaFX的界面库等于完全重写,而事实上,改造现有的Swing类库花费的精力更少,见效更快。

有人说,感觉Swing的使用不复杂,能轻松的实现很多特效,能定制很多功能,如著名的Renderer,这就是我想说的重点,易用性很大程度上和灵活性是矛盾的,有人说这是鱼和熊掌不可兼得,事实上,在MVC框架之上定制一套通用的功能是非常容易的,比如JList,如果想实现列表中有图标,文字是粗体,背景有颜色,精通Swing的人会说,定制个Renderer,但是我想说的是为什么不提供个通用的Model,能够设置图标,字体,颜色等呢?这不是更方便吗?咋看以来,这和直接设置界面控件的类库如.Net的控件差不多,是的,在MVC框架之上提供这些通用的Model,非常容易,而且能够减少大量的代码复制和子类,让初学者和专家都能很容易的实现专业的界面。

个人是非常喜欢Swing类库的,MVC框架的应用在Swing类库中体现的淋漓尽致,然而,不能让优点掩盖缺点,研究和思考总能带来更有价值的东西,因为事实已经证明,只有直面问题,解决问题才能赢得客户的信任!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值