【发布时间】:2015-04-28 10:33:22
【问题描述】:
什么是面向方面的编程?面向方面编程 (ASP) 能否取代面向对象编程 (OOP)?请用有力的论据来回答。
【问题讨论】:
什么是面向方面的编程?面向方面编程 (ASP) 能否取代面向对象编程 (OOP)?请用有力的论据来回答。
【问题讨论】:
在计算中,面向方面编程 (AOP) 是一种编程范式,旨在通过允许分离横切关注点来提高模块化。 AOP 构成了面向方面的软件开发的基础。 AOP 包括支持源代码级别关注点模块化的编程方法和工具。面向方面的编程需要将程序逻辑分解为不同的部分(所谓的关注点,功能的内聚区域)。几乎所有的编程范式都通过提供可用于实现、抽象和组合这些关注点的抽象(例如,函数、过程、模块、类、方法)来支持将关注点进行某种程度的分组和封装到单独的、独立的实体中。一些关注点“跨越”了程序中的多个抽象,并且违背了这些实现形式。这些关注点称为横切关注点。
日志记录 体现了横切关注点,因为日志记录策略必然会影响系统的每个已记录部分。 因此,日志记录横切所有记录的类和方法。
首先,AOP 不会取代 OOP。 AOP 扩展了 OOP。
不应将 AOP 视为 OOP 的替代品,而应将其视为一个不错的附加组件,它使我们的代码更加简洁、松散耦合并专注于业务逻辑。因此,通过应用 AOP,您将获得两大好处:
1) 每个关注点的逻辑现在都在一个地方,而不是分散在整个代码库中。
2) 类更简洁,因为它们只包含主要关注点(或核心功能)的代码,而次要关注点已移至方面。
【讨论】: