你不得不了解的 AOP 知识

前言

AOP(Aspect-oriented programming)即面向切面的程序编程,是施乐公司帕洛阿尔托研究中心(Xerox PARC)在上世纪90年代发明的一种编程方式。AOP 是从 OOP 中抽象出来的“方面”的概念,目的是为了打破对象的封装性。它的作用更多地是关注系统的某个方面。AOP 不是对 OOP 的颠覆,而是对 OOP 的改进与优化,它能改进 OOP 系统的以下问题:代码重复、可读性差,可重用性差。因此本文的目标是为了打好 AOP 的基础理论以及在 PHP 中如何使用 AOP,让我们可以应用 AOP 来改进 OOP 系统架构,让我们的代码看起来更加简单、清晰。

本文内容有如下3部分:

AOP 基础知识、AOP 核心技术以及 PHP 中 AOP 的使用示例。

一、AOP 基础知识

1.1、AOP 简介

AOP(Aspect-oriented programming)即面向切面的程序编程,是施乐公司帕洛阿尔托研究中心(Xerox PARC)在上世纪90年代发明的一种编程方式。AOP 是从 OOP 中抽象出来的“方面”的概念,目的是为了打破对象的封装性。它以“切面”的方式对原有的模块进行重组,抽象那些与业务无关却为整个系统所通用的功能,并将其最终封装在一起。

AOP 在企业应用中正逐渐体现其自身的价值,但正如其名,它的作用更多地是关注系统的某一方面。AOP 还缺乏革命的驱动力,并不足以颠覆 OOP 的世界。我们不可能像当初面向对象编程取代面向过程编程那样,预见 AOP 之于 OOP 具有强大至可以颠覆程序员思想的力量。而事实上,AOP 从诞生以来,就从未贴上“革命”的标签。相反,它更多地是起到了一种推波助澜的作用,弥补 OOP 的缺失,进而在 OO 程序设计中,扩展了一种更宽广的模式。

1.2、AOP 的开发过程

AOP 的开发有一个共同的主题,那就是分离关注点。AOP 使你可以用一种松散耦合的方式来实现独立的关注点,然后通过组合这些关注点来建立最终系统。

AOP 的开发包括三个过程,首先是分离关注点,然后是实现关注点与核心功能,最后在组合关注点与核心功能,形成整个完整的系统。如下图所示。

你不得不了解的 AOP 知识_第1张图片

 

这种方式是将核心关注点(核心功能)作为切入点,一般关注点(系统功能或通用功能)作为切面。这种方式是常见的开发过程。

1.3、AOP 使用场景

AOP 最常见的一些使用场景如下面这些:

日志记录,跟踪,优化和监控;事务的处理;持久化;性能的优化;资源池;如数据库连接池的管理;系统统一的认证、权限管理等;应用系统的异常捕捉及处理;针对具体行业应用的横切行为;

二、核心技术

2.1、AOP 名称解释

  • 关注点(Concern

你可能感兴趣的:(php)