Red de conocimientos turísticos - Conocimientos sobre calendario chino - Programación y decoradores orientados a aspectos de "información seca"

Programación y decoradores orientados a aspectos de "información seca"

Programación Orientada a Aspectos

~~~~ Bueno, echemos un vistazo a la Enciclopedia Baidu ~~~~

AOP es la abreviatura de Programación Orientada a Aspectos. lo que significa: La programación orientada a aspectos es una tecnología que logra el mantenimiento unificado de las funciones del programa mediante precompilación y agentes dinámicos en tiempo de ejecución. AOP es la continuación de OOP, un punto caliente en el desarrollo de software, un contenido importante en el marco Spring y un paradigma derivado de la programación funcional. AOP se puede utilizar para aislar varias partes de la lógica empresarial, reduciendo así el acoplamiento entre las distintas partes de la lógica empresarial, mejorando la reutilización del programa y mejorando la eficiencia del desarrollo.

Sin más, tomemos un ejemplo clásico de Internet:

Lógica de negocio:

Negocio principal: modificar la base de datos

Punto de entrada 1: imprimir el registro antes de la modificación

Punto de entrada 2: imprimir el registro después de la modificación

Principio: de hecho, consiste en envolver la actualización comercial principal Db dos veces y devolver un nuevo método. El nuevo método llamará al método de corte antes y después de llamar al método original para evitar cambios directos en el método principal.

Decorador

1 Decoración de la clase

2 Decoración del método de la clase

clase Simios {

@eatMore

eat() {

console.log('comer fruta')

}

}

// Método de modificación

function eatMore(className, propName, descriptor) {

//console.log(descriptor)

let value = descriptor.value

descriptor.value = function() {

console.log('comer tierra')

value()

}

devolver descriptor

}

let apes1 = new Apes()

apes1.eat()

Utilice el descriptor de propiedad del descriptor para ver que Object.defineProperty depende de ES5

Revisar Object.defineProperty

3. Decoración para operadores de acceso

4. Modificar paso de parámetros

Aplicación

1. Aplicación en el cálculo de secuencia de Fibonacci

2. Verificación de tipo en el operador de acceso -set