文档章节

PO-->OOP+AOP-->SOA软件开发思想演化

AlexMahoneFBI
 AlexMahoneFBI
发布于 2016/03/31 16:28
字数 1090
阅读 84
收藏 9
点赞 1
评论 0
一、概述
    PO(Procedure Oriented,面向过程编程):是一种以过程为中心的编程思想。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
    OOP(Object Oriented Programming,面向对象编程):是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。
    AOP(Aspect Oriented Programming,面向切面编程):面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
    SOA(Service-Oriented Architecture,面向服务的体系结构):面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、XML(标准通用标记语言的子集)/Web Service技术之后的自然延伸。SOA将能够帮助软件工程师们站在一个新的高度理解企业级架构中的各种组件的开发、部署形式,它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统。较之以往,以SOA架构的系统能够更加从容地面对业务的急剧变化。
    上面是对这几个英文简写的概念描述下面就根据图问的形式来和大家来说明这几个实现图形。
二、图文展示。

2.1 PO。


    在面向过程的编程的指导下我们知道,我们完成一个功能都要写重头到尾写一遍一个一个的来执行每个方法与方法直接都是独立的就算是相同的功能的方法我们用了几次就得在不同的功能下写几次。这样的编程方式不易维护,扩展性不高。

2.2 OOP。


   面向对象的编程的出现让我们的方法有了更好的复用性,在对象与对象的这个层面我们利用OOP思想实现了方法的复用性,但是在越来越多的对象构成一个公共的服务颗粒时我们再用淡出的OOP来编程显得有点力不从心。

2.3 OOP+AOP


    AOP的出现补充了OOP中因为大颗粒对象直接的解耦问题。随着我们科技的进步企业中信息化程度越来越高,新系统和旧系统直接,不同语言的系统之间的替换、交互需求日益增多,有了新的系统又不想抛弃旧的系统OOP+AOP来解决这些问题不那么适合了。

2.4 SOA


    SOA面向服务的编程思想由于企业内部的需要日益得到推出,SOA让软件更加的灵活,更加的适应了现在的需求。还有即插即用的软件开发部署方式日益需要OSGI的技术将会在未来大放异彩。

三、总结。

    从OP-->OOP+AOP-->SOA这三个阶段一步步的都彰显着人类科技进步,思想进步。


本文转载自:http://blog.csdn.net/gwblue/article/details/46287283

共有 人打赏支持
AlexMahoneFBI
粉丝 13
博文 44
码字总数 15083
作品 0
海淀
面对突来的SOA大潮,众多软件厂商如何变阵?

纵观软件发展近40年的历史,大致可以将其分为两个阶段。第一阶段是以IBM为代表、以规模为特征的主机、大系统行业应用软件时代。软件开发以一个独立的大型系统工程随着网络技术的发展,这种独...

晨曦之光
2012/03/09
0
0
深入浅出SOA思想

聊聊服务架构 深入浅出SOA思想 微服务、SOA 和 API对比与分析 SOA的全称是Service-Oriented Architecture,面向服务架构。。 SOA的出现,预示着一个的新IT(Information Technology)时代的到...

陶邦仁
2016/03/16
1K
0
应用程序框架设计之二:分层和层间数据传递(上)

上一篇:应用程序框架设计之前言 还记得97年左右开始的胖客户机和瘦客户机之争吗?之后又是CS和BS之争,然后又是两层和多层之争...,十年之后的今天我们再回过头看这些争论,一切似乎看起来都...

长平狐
2012/10/23
63
0
SOA项目技术实施指南

长风联盟SOA参考架构工作组介绍: 长风联盟SOA参考架构工作组(SOA-RA-TF,由东方通、计算所、华迪、神州数码、同方、有生博大、开普互联等参与)通过对SOA标准、技术、参考架构和原型的交流...

朱律玮
2008/07/31
0
0
重写AgileEAS.NET SOA 中间件平台账号密码的加密算法

一、平台简介 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变...

agilelab
2016/07/04
0
0
浅析SOA面向服务架构

首先来看看什么是服务?我们常谈到的业务组件,业务方法或操作是否都是服务?而真正的服务必须满足两个条件,一个服务本身是能力供给,必须有外界的需求;一个是服务本身是可复用或重用。所以...

X_H
2015/10/22
25
0
关于解构主义思想在软件开发中的应用

解构的目的在于重新构建整个思想体系。 因为思想只是一种工具。是用来解决问题的。当我发现某一种思维不适合现有的情况时,我会改变我的思想。 我不是不固执。我只是不蠢。 面向过程是一种解...

刘小兵2014
2011/08/12
0
0
软件工程四十年及其发展

程序加上文本和起来成为软件,软件是为开发的,是由人开发的。 软件系统可能是人类所创造的最错综复杂的事情,软件工程还很年轻,需要继续探索和尝试。 软件工程的定义有很多版本,IEEE给出的...

朱鹏举
2008/09/27
0
0
AgileEAS.NET SOA 中间件2013第四季度发布&部分功能开源预告

一、前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台。用于帮助中小型软件企业建立一条适合市场快速变化的...

agilelab
2013/10/11
0
0
java的(PO,VO,TO,BO,DAO,POJO)

PO(persistant object) 持久对象 在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了。通常对应数据模型(数据库),本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射...

hxf10047
2015/12/19
166
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

分布式之抉择分布式锁

前言: 目前网上大部分的基于zookpeer,和redis的分布式锁的文章都不够全面。要么就是特意避开集群的情况,要么就是考虑不全,读者看着还是一脸迷茫。坦白说,这种老题材,很难写出新创意,博...

Java大蜗牛
7分钟前
0
0
rm: cannot remove `xxx’: Operation not permitted

rm: cannot remove `xxx': Operation not permitted可以先用lsattr xxx查看文件的隐藏属性。如果看到-----a-------的情况,可以用chattr -a xxx去除a属性,然后再进行删除就可以了....

殘留回憶
8分钟前
0
0
oracle 如何查看当前用户的表空间名称

如何查询当前用户的表空间名称?因为oracle建立索引,需要知道当前用户的表空间,查找了一下资料 --查询语法-- select default_tablespace from dba_users where username='登录用户' 如,...

youfen
12分钟前
0
0
MicroPython-TPYBoard开发板DIY小型家庭气象站

对于喜欢登山的人来说,都会非常关心自己所处的高度跟温度,海拔高度的测量方法,海拔测量一般常用的有两种方式,一是通过GPS全球定位系统,二是通过测出大气压,根据气压值算出海拔高度。 ...

bodasisiter
12分钟前
0
0
抓取沪A股票资金流向数据

library(rvest)mydata<-list()day1<-Sys.Date()day2<-Sys.Date()-7stock<-c("600695","600734","603693","601990","603650","603045","603895","600735","601999","603970","600619"......

cuyi
12分钟前
0
0
Java中mqtt消息队列发送和订阅消息

1.首先本地建立mqtt协议的服务器 2.直接上代码 package io.powerx.test;import java.util.Date;import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;import org.eclipse.p......

江湖鱼大虾
14分钟前
0
0
数据结构-树的学习

1. 相关连接 维基-二叉搜索树 维基-红黑树 思否-红黑树

liuyan_lc
16分钟前
0
0
Nginx upstream 负载均衡

Nginx upstream 负载均衡 了了情空 关注 2016.05.31 16:16* 字数 612 阅读 537评论 1喜欢 0 上周五同事跟我提一个需求,大概描述是酱紫:“我们现在终端都在访问同一台服务器,如果流量过大造...

linjin200
17分钟前
0
2
Dubbo 源码解读——自定义 Classloader 之 ExtensionLoader

众所周知,Dubbo 是阿里巴巴公司自主研发开源的一个高性能的服务框架(现已捐献给 Apache 基金会组织),应用之间可以通过 RPC 的方式来互相调用并返回结果。主要基于 Java 语言开发,它提供...

Ryan-瑞恩
25分钟前
0
0
Sonar Maven/IDEA集成(未完待续)

前言:在上一篇(SonarQube安装步骤)的基础上,我们来集成maven/IDEA 1.首先是集成maven(maven的安装配置就不多说了) 找到maven安装目录下-conf文件夹-setting.xml文件 然后添加以下配置信...

张艺兴女朋友
25分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部