深色模式
装饰者模式
装饰者(decorator) 又称作包装器(wrapper),用在不改变原有对象功能和方法时,添加进去自己的方法。常见的手段有 AOP 等。
装饰器用来包装原有对象,形成一个新的对象,这个新对象提供了和原对象一样的对外接口,因此新对象对外来说是透明的。
举个例子,有个表单提交的对象(方法),对外提供调用服务。使用一段时间后,我们想要添加一个表单验证的功能,此时我们可以在 formSubmit 外包装一层,添加新的功能,同时对外提供与原 formSubmit 想通的接口。
js
var formSubmit = function (values) {
console.log('表单提交');
};
// 包装新的 formSubmit, 注入新的功能
formSubmit = function (values) {
// 添加新的内容
validateFormData(values);
// 执行原函数
formSubmit(values);
};
装饰者其他内容可以参考 AOP 面相切面编程。