代理模式
代理模式是一种结构型设计模式,它允许你提供一个替代物或占位符,以控制对另一个对象的访问。代理对象充当目标对象的接口,以便可以在不改变目标对象的情况下添加额外的功能。
- 代理模式在实际开发中经常用于延迟加载(懒加载)、访问控制、缓存等场景,它可以提高代码的灵活性和可维护性。
// 假设有一个图片加载类
class ImageLoader {
constructor(url) {
this.url = url;
}
loadImage() {
console.log(`Loading image from ${this.url}...`);
// 省略加载图片的逻辑
}
}
// 通过代理模式来控制图片的加载,例如,在图片加载完成前显示加载动画
class ImageLoaderProxy {
constructor(url) {
this.loader = new ImageLoader(url);
}
loadImage() {
// 显示加载动画
console.log("显示加载动画...");
// 加载图片
this.loader.loadImage();
// 图片加载完成后隐藏加载动画
console.log("隐藏加载动画...");
}
}
// 使用代理加载图片
const proxy = new ImageLoaderProxy("https://example.com/image.jpg");
proxy.loadImage();
Powered by Waline v2.15.8