对象、组件、服务,逐步建立的开发方法
2007-06-02 04:57
330 查看
面向对象是90年前后兴起的编程方法,后来进化为组件方式,03开始国外的不少公司开始推进SOA的方法,这里不作名词解释,就是说一下我所理解的对象、组件和服务。
很早就看到国外所谓的面向对象编程,国内也很多人都在学习面向对象编程,究竟什么是面向对象,个人觉得每个人理解的方式和方法 都是不同的。C语言不是面向对象的语言,但不代表C不能按照面向对象的方法编程,C++是面向对象的,但是很多程序员写的程序并不是面向对象,所以不是用面向对象的语言就能够编写出面向对象的程序,关键是写程序的人。
后来陆续开始面向组件的编程,有了COM、DCOM、CORBA等等方法,于是有很多程序员开始学习组件编写,写了很多不是组件的组件,不理解为什么要面向对象,为什么要把程序写成组件,就不可能掌握组件的编程原则,那肯定是写不好程序的。
SOA是什么,网络上一堆的材料不用我来描述,但是怎么把系统规划符合SOA,这才有可能设计好SOA。
下面我说一下自己的理解,不一定对,希望方家指教。我觉得很重要的一点是程序不是编写完成发布了就结束了的,更多的是要在程序的整个生命周期内维护好,维护期的需求变化造成的代码量远比初期编写的时候的代码量大,所以程序的开发完成只是生命的开始,所以怎么让这个生命活得更长,更健康是我们在一开始编写的时候采用的方法有很大的关系。
面向对象是基于代码重用的需要,我刚开始写程序的时候,书上就说要写成函数,各种各样的函数支持程序的工作,负责完成一个简单的功能,后来就发现函数的重用还不能解决代码不断修改的需要,于是修改了函数的入口参数,函数越来越多后代码就变得很凌乱。面向对象就能够在更高的层次上解决函数方式编码的问题。把一个form作成对象,对象内部即便是凌乱的,也不会对外部代码产生影响。
组件是基于功能的编程方法,或者可以说规划组件是系统设计的一个重要步骤,怎么把一个需求拆分成多个组件,每个组件再按照面向对象的方法编程。组件的编程实现方法也是软件工程越来越大,多个程序员协同完成一个任务的有效方法。
随着系统规模的不断扩大,一个系统的实现需要更多的人参与,单纯用组件的方法来规划系统已经不合适了,编程工具的使用1-3个程序员就可以完成一个组件的代码,组件之间的调用也越来越复杂,服务的模式即SOA模式就是解决组件间的关系问题,把系统拆分为不同的服务,各个服务间的接口在一开始就进行规划,服务内部包含各种组件,有可能一个组件在二个不同的服务内工作,但是其归属首先是归属到各个服务中。SOA的方法首先是方法论上的进步,尤其是系统设计上的问题,回过头看几年前作的东西,如果能够一开始就用服务的概念来规划,系统的生命期会更长。
很早就看到国外所谓的面向对象编程,国内也很多人都在学习面向对象编程,究竟什么是面向对象,个人觉得每个人理解的方式和方法 都是不同的。C语言不是面向对象的语言,但不代表C不能按照面向对象的方法编程,C++是面向对象的,但是很多程序员写的程序并不是面向对象,所以不是用面向对象的语言就能够编写出面向对象的程序,关键是写程序的人。
后来陆续开始面向组件的编程,有了COM、DCOM、CORBA等等方法,于是有很多程序员开始学习组件编写,写了很多不是组件的组件,不理解为什么要面向对象,为什么要把程序写成组件,就不可能掌握组件的编程原则,那肯定是写不好程序的。
SOA是什么,网络上一堆的材料不用我来描述,但是怎么把系统规划符合SOA,这才有可能设计好SOA。
下面我说一下自己的理解,不一定对,希望方家指教。我觉得很重要的一点是程序不是编写完成发布了就结束了的,更多的是要在程序的整个生命周期内维护好,维护期的需求变化造成的代码量远比初期编写的时候的代码量大,所以程序的开发完成只是生命的开始,所以怎么让这个生命活得更长,更健康是我们在一开始编写的时候采用的方法有很大的关系。
面向对象是基于代码重用的需要,我刚开始写程序的时候,书上就说要写成函数,各种各样的函数支持程序的工作,负责完成一个简单的功能,后来就发现函数的重用还不能解决代码不断修改的需要,于是修改了函数的入口参数,函数越来越多后代码就变得很凌乱。面向对象就能够在更高的层次上解决函数方式编码的问题。把一个form作成对象,对象内部即便是凌乱的,也不会对外部代码产生影响。
组件是基于功能的编程方法,或者可以说规划组件是系统设计的一个重要步骤,怎么把一个需求拆分成多个组件,每个组件再按照面向对象的方法编程。组件的编程实现方法也是软件工程越来越大,多个程序员协同完成一个任务的有效方法。
随着系统规模的不断扩大,一个系统的实现需要更多的人参与,单纯用组件的方法来规划系统已经不合适了,编程工具的使用1-3个程序员就可以完成一个组件的代码,组件之间的调用也越来越复杂,服务的模式即SOA模式就是解决组件间的关系问题,把系统拆分为不同的服务,各个服务间的接口在一开始就进行规划,服务内部包含各种组件,有可能一个组件在二个不同的服务内工作,但是其归属首先是归属到各个服务中。SOA的方法首先是方法论上的进步,尤其是系统设计上的问题,回过头看几年前作的东西,如果能够一开始就用服务的概念来规划,系统的生命期会更长。
相关文章推荐
- vs2010 vc++开发引用 ArcEngine9.3 组件和AO对象实例化方法
- 面向对象、面向服务、面向组件三种编程模式有什么区别?分别适用于哪些领域的开发?
- vs2010 vc++开发引用 ArcEngine9.3 组件和AO对象实例化方法
- ENVI二次开发:对象图形系统、组件建立的理解
- 面向对象及组件开发(五)普通方法与原型方法
- QuickCSharp框架开发(7)------建立SecurityHelper对象、初步建立用户验证方法、获取当前用户凭证
- python面向对象开发3 (内部类-构造-析构)魔术方法)
- ejb客户端的三种调用方法,以及InitialContext lookup后的jndi对象在服务重启后缓存失效的问题
- 使用Axis2开发Web服务 --- 使用XmlBeans建立客户端
- 使用ArcGIS GP服务遇到的问题,原因以及解决方法 - 客户端API开发(Javascript/Flex/Silverlig 转载
- 如何在cocos2d-x中使用ECS(实体-组件-系统)架构方法开发一个游戏?
- C++中建立对象间消息连接的系统方法
- iOS开发笔记之多点触控(三) 调用UITouch对象方法——locationInView,多点移动多个对象
- C++中建立对象间消息连接的一种系统方法——回调函数
- 轻量级的.NET对象查找服务和AOP开发框架Netop.Core源码解说(2)--配置
- XMLHttpRequest的简单认识和原始JS建立该对象方法
- 学习面向对象开发的方法
- [转]FLVPlayback组件针对开发人员的方法
- Android API开发之SMS短信服务处理和获取联系人的方法
- 软件工程总结——传统软件开发方法与面向对象开发方法的比较