OOP,POP,AOP,ORM,SOA

南楼画角 提交于 2020-02-26 11:23:29

面向对象编程(OOP)

简单来说,面向对象就是构成问题事务分解成各个对象,然后用对象执行方法的方式来解决问题。

面向对象的三大特性:

1、封装 隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高复用性和安全性。 2、继承 提高代码复用性;继承是多态的前提。 3、多态 父类或接口定义的引用变量可以指向子类或具体实现类的实例对象。提高了程序的拓展性。

优缺点:

优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护 .

缺点:性能比面向过程差

最后

  1. 抽象会使复杂的问题更加简单化。
  2. 从以前面向过程的执行者,变成了张张嘴的指挥者。
  3. 面向对象更符合人类的思维,面向过程则是机器的思想

面向过程编程(POP)

面向过程分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

优缺点:

优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。

缺点:没有面向对象易维护、易复用、易扩展

面向切面编程(AOP)

使用AOP技术,可以将一些系统性相关的编程工作,独立提取出来,独立实现,然后通过切面切入系统,从而达到了将不同的关注点分离出来的效果。

AOP和IOC都是补充性的技术,它们都是运用模块化方式解决企业应用程序开发中的复杂问题。在典型的面向对象的开发方式中,可能要将日志记录语句放在所有方法和Java类中才能实现日志功能。在AOP方式中,可以反过来将日志服务模块化,并以声明的方式将它们应用到需要的日志组件上。

常用场景

  1. 日志
  2. 事物
  3. 数据库操作

优缺点

优点: 切面的定义放在xml里面,灵活配置;易于测试;易于装卸;

缺点: 创建对象的流程麻烦; 由于spring大部分采用反射机制来实现,消耗性能; 由于对象的定义放在xml,对于使用eclipse来重构就会比较麻烦;

对象关系映射(ORM)

它的作用是在关系型数据库和业务实体对象之间作一个映射,这样我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。

优缺点

优点: 隐藏了数据访问细节,构造固化数据结构变简单

缺点:牺牲性能,增加学习成本

ORM方法论基于三个核心原则:

简单:以最基本的形式建模数据。

传达性:数据库结构被任何人都能理解的语言文档化。

精确性:基于数据模型创建正确标准化了的结构。

面向服务的架构(SOA)

它是一种粗粒度,松耦合服务架构,服务之间通过简单,精确定义接口进行通讯,不涉及底层编程接口和通讯模型。它能解决多服务凌乱问题,SOA架构解决数据服务的复杂程度,同时SOA也叫服务治理。

优缺点

优点: 核心逻辑复用,独立测试部署,水平扩展,系统运营。

缺点:依赖复杂,可靠性差,数据一致性,运维要求高

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!