作用
动态为一个对象添加新功能。同时不改变现有的功能。
示例
示例
interface IStream{
read();
write();
}
class FileStream implements IStream{
public read() {
}
public write() {
}
}
abstract class Decorate implements IStream {
protected stream: IStream;
constructor(stream: IStream) {
this.stream = stream;
}
public abstract read():any;
public abstract write(): any;
}
class CryptoStream extends Decorate{
constructor(stream: IStream) {
super(stream);
}
public read() {
// ...
this.stream.read();
// ...
}
public write() {
this.stream.write();
}
}
let fileStr = new FileStream();
let cryptoFile = new CryptoStream(fileStr);
本文深入探讨了装饰者设计模式的概念,通过示例展示了如何在不影响现有功能的前提下为对象动态添加新功能。装饰者模式允许在运行时增加额外的行为,而无需修改原始类,这是一种灵活的替代继承的方法。
559

被折叠的 条评论
为什么被折叠?



