Java的内心世界和外部世界协调的统一

我喜欢Java,这个不用置疑。她有大哥C++丰富的表达力,大姐SmallTalk的纯面向对象,又有IBM,Oracle,Apache这样的一大批追求者。她的内心世界纯洁而且优美。在这个纷乱的世界里,我们如何保证Java内心的纯洁和优美呢,有能让她对纷乱的外部世界有强大的控制能力呢,本文将为你解答这些问题。

对于Java的内部世界我们认为是所有的Java代码,这些代码是面向对象的,是良构的。可以用IDE把java代码解析成一种特殊的对象,让代码可以进行自动化的重构,编译时检查。

可以外部世界缺破坏了这一切,也就是面向对象的物理设计 数据库,网络,IO,GUI,Web,XML 这些都破坏了“纯洁的面向对象”,Java代码中充满了处理这些的代码。让Java变得越来越难以重构,我们不再关心设计,软件越来越僵化。这些问题的来源在于她们没有编译时检查,而且不能被纳入java的重构系统。下面分别论述如何解决这些问题。

数据库

我们不要在把数据库看成整个程序的核心,数据库只是一个可以实现持久存储,并且提供检索的工具。在JDBC中最重要的就是 对象”⇒ sql语句⇒ ResultSet⇒“ 对象,“”中的内容就是java的外部世界,对于Java来说这些内容是难以重构的,并且是和Java不能很好结合的,这个就是为什么在Java程序中,大量的SQL语句的构建导致维护的恶梦。

解决方案:这个世界大量的ORM提供给我们使用。我最喜欢的就是IBatis,使用SQL模版,用对象作为参数,然后生成SQL,执行的结果再包装为类,他完整的实现了内部世界和外部世界的隔离。

网络、IO、XML

JavaObject⇒ ”⇒协议处理器⇒网络、IO、XML⇒协议处理器⇒“⇒JavaObject

GUI、Web

GUI=用户的输入⇒Java处理⇒显示结果

用户也就是人,人的输入不是面向对象的,我们需要加上一个隔离层把用户的输入转化为对。

显示的结果如果是对象,用户也不能识别,我们要把对象转化为用户能识别的方式。

经过以上处理

GUI=”用户的输入⇒验证⇒转化为对象⇒“ ⇒Java处理⇒ “⇒对象GUI转化器⇒显示结果”

“”中的内容是Java的外部世界。现在Java的内部世界纯洁而优美。

我认为Java的外部世界是Java和外部世界沟通的渠道。是必须的,Java的外部世界是可以简单化⇒自动化⇒傻瓜化的。下面举几个框架的例子验证一下我的说法。

Struct:

Struct=”用户的输入⇒验证(验证框架)⇒转化为对象(FormBean)⇒“ ⇒Java处理⇒ “⇒对象GUI转化器(JSP或者freemark模版)⇒显示结果”

Struct用XML配置实现了整个过程的简单化,同时我们可以用一些工具实现XML的自动化,然后我就可以傻话化的使用整个的过程。这就是设计!

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值