面向对象的原则、模式、语言及框架(一)

这学期开面向对象的方法课程,可以趁机总结一下以前面向对象的开发经验,以及课程的心得,打算从面向对象的原则、模式、语言及框架方面总结,貌似是一个很大的题目。
今天听了面向对象的课,主要是讲软件复用与组件技术,以及面向对象建模技术。今天讲了COM组件,微软帝国大厦的基石。COM组件虽然已是昨日黄花,但对于组件和组件复用的理念还是有很好的诠释的,用C++编COM组件从老师讲的例子来看,貌似很费劲的东东,需要实现
IUnknown接口的QueryInterface、AddRef和Release方法。需要用户自己维护引用计数貌似是个很容易出问题的东东,如果多Release一次,问题不是内存泄露的问题了,是程序直接崩溃的问题。那个例子居然还有低级的求外部类对象的地址的东东,这样的程序貌似会很脆弱,在类里面再加上一个变量,求出的地址就不是正确的了。怨不得Microsoft把Java改造成J++,成为理想的COM组件语言,Java的反射、动态性对COM组件的编写大有帮助。然而结果未遂,只好推出C#了。
虽然COM组件达到的效果得确很好,但貌似有点太复杂了,有点严重转移核心业务的嫌疑。
在Java的世界里,Javabean就是COM组件,但这种组件不依赖于具体容器,没有那么多的约束,只需要实现getter,setter方法,方便单元测试,难怪POJO轻量级的Java EE框架会那么的流行。EJB就相当于DCOM,分布式的COM组件,EJB让人诟病的原因之一居然是分布式,
就像马丁大叔在企业应用架构模式中所说的分布式的第一要义是不要分布式,因为大多数的系统其实没有分布式这个需求,分布式得确能使系统具有很好的伸缩性,但编写复杂,性能不张。EJB需要依赖于EJB容器,和由当时单元测试没有流行,造成了本身设计不便于进行单元测试等缺点.EJB3.0也开始轻量化,但似乎并没被看好。现在Spring似乎成为了企业级开发的事实标准,Spring实用主义的优秀理念,依赖注入,面向方面编程,良好的编程模型,不仅使得企业级开发变的简单,而且最终能够产生出优秀的松耦合的系统。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值