关于面向对象,面向组件和面象服务的简单讨论
2015-03-20 10:31
281 查看
java语言设计者觉得c,c++都是面向机器的,开发者必须了解机器,解决商业问题也必须让商业系统去适应机器,这对开发者来说,是很痛苦的
所以java开发者提倡面向对象,将万事万物都看作是对象,让程序员不再关注底层,而主要关注需要解决的问题。最初是从银行交易中的,客户,账户,交易等对象演化而来
但这十多年来,java面向对象的思想并没有最初说的那么美好,java类粒度太小,所以根本上没解决面向对象
后来开始面向组件,
面向对象就是一个个class,面向组件就是jar,面向服务就是一个个war
软件从诞生上线后,必然要维护和扩展,如果不按照组件这么做,扩展带来的依赖影响将是非常大的,以至于无法维护
但是面向组件也有问题,组件在一个进程内,想淘宝,京东,等这些大型网站,如果把jar全部放在一个应用下,一方面jar太多,内存都不够用,另一方面维护和测试巨复杂,最后的结果是无法维护和测试,所以现在大部分公司开始面向服务,将一个大系统拆成n个小系统,协作服务。
其实这种思想在我们现实生活中处处都是,举例来说,一个集团性公司,需要分成多个子公司,一个子公司分成多个部门,一个部门需要由多个岗位构成。集团公司就是系统,子公司就是子服务系统,部门就是组件,岗位就是class。
但如果给程序员讲讲大道理,比如:咱们国家也问题多多,咱们公司也问题多多,别公司也问题多多,部门不合理,岗位不合理的经常存在,但我们依然需要划分成多个部门多个岗位。所以咱们做软件系统开发也一样,我们划分了多个模块,不可能很完美,但依然要分模块。
软件程序本来就是现实问题的抽象,现实问题本身就是不完美的,所以不要对软件系统去求完美。
现实世界是会进化的,经过调整可以不断的完美,所以我们的软件系统也要能够适应调整,通过调整让系统更合理,反之,如果一个系统不能够调整,那就不符合设计原则。
所以java开发者提倡面向对象,将万事万物都看作是对象,让程序员不再关注底层,而主要关注需要解决的问题。最初是从银行交易中的,客户,账户,交易等对象演化而来
但这十多年来,java面向对象的思想并没有最初说的那么美好,java类粒度太小,所以根本上没解决面向对象
后来开始面向组件,
面向对象就是一个个class,面向组件就是jar,面向服务就是一个个war
软件从诞生上线后,必然要维护和扩展,如果不按照组件这么做,扩展带来的依赖影响将是非常大的,以至于无法维护
但是面向组件也有问题,组件在一个进程内,想淘宝,京东,等这些大型网站,如果把jar全部放在一个应用下,一方面jar太多,内存都不够用,另一方面维护和测试巨复杂,最后的结果是无法维护和测试,所以现在大部分公司开始面向服务,将一个大系统拆成n个小系统,协作服务。
其实这种思想在我们现实生活中处处都是,举例来说,一个集团性公司,需要分成多个子公司,一个子公司分成多个部门,一个部门需要由多个岗位构成。集团公司就是系统,子公司就是子服务系统,部门就是组件,岗位就是class。
但如果给程序员讲讲大道理,比如:咱们国家也问题多多,咱们公司也问题多多,别公司也问题多多,部门不合理,岗位不合理的经常存在,但我们依然需要划分成多个部门多个岗位。所以咱们做软件系统开发也一样,我们划分了多个模块,不可能很完美,但依然要分模块。
软件程序本来就是现实问题的抽象,现实问题本身就是不完美的,所以不要对软件系统去求完美。
现实世界是会进化的,经过调整可以不断的完美,所以我们的软件系统也要能够适应调整,通过调整让系统更合理,反之,如果一个系统不能够调整,那就不符合设计原则。
相关文章推荐
- 关于面向对象思想的讨论-转载(非常牛叉)
- 面向对象、面向服务、面向组件三种编程模式有什么区别?分别适用于哪些领域的开发?
- 关于面向对象和面象过程的一些感想
- 关于面向对象和面象过程的一些感想
- 面向对象,面向服务,面向组件三种编程模式有什么区别
- 面向(过程、对象、组件、服务)编程
- [转]剖析ASP.NET AJAX的面向对象思想和ASP.NET AJAX的组件开发
- 转载:面向对象与面向组件小议 (一)
- 对象、组件、服务,逐步建立的开发方法
- 构建简单的 C++ 服务组件,第 1 部分: 服务组件体系结构 C++ API 简介
- 最简单的vb6访问Web服务(WSDL)的组件
- 面向对象技术应用:可重用软件组件
- 1-(E-teller)关于向T4Table组件返回多个对象的方法
- 关于对象组件编写的一点想法
- symbian中活动服务对象的一些简单的使用
- 关于DELPHI中的类对象以及类指针简单探讨总结。
- 面向对象与面向组件小议
- 关于Remoting服务启动和停止的简单总结
- Java中关于对象串行化的一些讨论
- [转]剖析ASP.NET AJAX的面向对象思想和ASP.NET AJAX的组件开发