AOP与OOP
AOP(面向方面编程)和OOP(面向对象编程)是两种编程范式。程序设计是一种基本的程序设计风格。编程范例在如何表示程序的每个元素以及如何定义每个步骤来解决问题方面是不同的。顾名思义,OOP专注于使用真实世界的对象及其行为来表示问题,而AOP则负责将程序分解成独立的横切关注点。
什么是AOP?
AOP是一种编程范式,它处理的是将程序分解为跨多个领域的具有凝聚力的功能区域(称为关注点),以提高模块性。许多其他编程范例都提供了对抽象(如类、方法等)的支持,以便将关注点分组并封装到唯一的实体中。但是关注点(例如“日志记录”)是横切关注点的例子,因为系统的每个日志记录部分都会受到日志记录策略的影响。所有AOP实现的主要焦点是有合适的横切表达式来在单个位置捕获所有关注点。
什么是OOP?
在OOP中,重点是从现实世界的元素来思考要解决的问题,并用对象及其行为来表示问题。类描述真实世界对象的抽象表示。类类似于蓝图或模板,它们收集可以组合在一起的类似项或事物。类具有称为属性的属性。属性被实现为全局变量和实例变量。类中的方法表示或定义这些类的行为。类的方法和属性称为类的成员。类的实例称为对象。因此,对象是一种与真实世界中的对象非常相似的数据结构。
有几个重要的OOP概念,如数据抽象、封装、多态性、消息传递、模块化和继承。通常,封装是通过使属性私有化来实现的,同时创建可用于访问这些属性的公共方法。继承允许用户从其他类(称为超级类)扩展类(称为子类)。多态性允许程序员用一个类的对象代替它的超类的对象。通常,在问题定义中找到的名词直接成为程序中的类。同样,动词变成了方法。一些最流行的OOP语言是Java和C。
AOP和OOP有什么区别?