AOP和OOP
AOP(面向方面编程)和OOP(面向对象编程)是两种编程范式。编程范式是计算机编程的一种基本风格。编程范式在如何表示程序的每个元素以及如何为解决问题定义每个步骤方面有所不同。顾名思义,OOP专注于使用现实世界的对象及其行为来表示问题,而AOP处理的是将程序分解为独立的横切关注点。
AOP是什么?
AOP是一种编程范式,它处理将程序分解为跨多个领域的内聚功能区域(称为关注点),以增加模块化。许多其他编程范例都提供了对抽象(如类、方法等)的支持,以将关注点分组并封装到唯一的实体中。但是关注点(例如“Logging”)是横切关注点的例子,因为系统的每个被记录的部分都受到用于记录的策略的影响。所有AOP实现的主要焦点是拥有合适的横切表达式,以捕获单个位置中的所有关注点。
面向对象是什么?
在OOP中,重点是根据现实世界的元素来思考要解决的问题,并根据对象及其行为来表示问题。类描述真实世界对象的抽象表示。类就像蓝图或模板,集合了类似的项目或可以分组的东西。类具有称为属性的属性。属性被实现为全局变量和实例变量。类中的方法表示或定义这些类的行为。类的方法和属性称为类的成员。类的实例称为对象。因此,对象是一种非常类似于某些现实世界对象的数据结构。
有几个重要的面向对象概念,如数据抽象、封装、多态性、消息传递、模块化和继承。通常,封装是通过将属性设为私有来实现的,同时创建可用于访问这些属性的公共方法。继承允许用户从其他类(称为超类)扩展类(称为子类)。多态允许程序员用类的对象替换其超类的对象。通常,在问题定义中找到的名词直接成为程序中的类。同样,动词也变成了方法。一些最流行的面向对象编程语言是Java和c#。
AOP和OOP之间的区别是什么?
面向对象和面向方面的关键区别在于,面向方面的重点是将编程任务分解为封装数据和方法的对象,而面向方面的重点是将程序分解为横切关注点。事实上,AOP并不是OOP的竞争对手,因为它是从OOP范式中产生的。AOP通过解决OOP的一些问题来扩展OOP。AOP引入了在一个地方实现横切关注点(可能在相应的OOP实现中分散在几个地方)的简洁方法。因此,AOP使程序更简洁,耦合更松散。
留下一个回复