php,java实现装饰者模式
2017-03-29 21:29
429 查看
当需要为现有的类增加新的功能,或则需要包装现有类时,适合使用该模式
类图:
![](http://img.blog.csdn.net/20170329211904188?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcmVucGVuZ2RkeHg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
java实现
抽象产品类
产品类
抽象装饰者
装饰者
php实现
类图:
java实现
抽象产品类
public abstract class Subject { public abstract void doSomething(); }
产品类
public class ConcreteSubject extends Subject { @Override public void doSomething() { } }
抽象装饰者
public abstract class Decoration extends Subject{ private Subject subject = null; public Decoration(Subject subject){ this.subject = subject; } @Override public void doSomething() { subject.doSomething(); } }
装饰者
public class ConcreteDecoration extends Decoration { public ConcreteDecoration(Subject subject) { super(subject); } private void decorationMethods(){ } @Override public void doSomething() { decorationMethods(); super.doSomething(); } }
php实现
abstract class Subject { public abstract function doSomething(); } class ConcreteSubject extends Subject { public function doSomething() { echo 'doSomething'; } } abstract class Decortion extends Subject { private $subject; public function __construct(Subject $subject) { $this->subject = $subject; } public function doSomething() { $this->subject->doSomething(); } } class ConcreteDecortion extends Decortion { public function __construct(Subject $subject) { parent::__construct($subject); } public function decortionMethods() { echo 'decortionMethods'; } public function doSomething() { $this->decortionMethods(); parent::doSomething(); } } $decortion = new ConcreteDecortion(new ConcreteSubject()); $decortion->doSomething();
相关文章推荐
- Java 实现装饰者(Decorator)模式
- php、java实现单例模式
- php、java实现状态模式
- 装饰者模式(java实现)
- Java 实现装饰者(Decorator)模式
- php,java实现组合模式
- php、java实现桥接模式
- php,java实现门面(外观)模式
- DES ECB 模式 JAVA PHP C# 实现 加密 解密 兼容
- php,java实现命令模式
- php,java实现建造者模式
- Java基于装饰者模式实现的图片工具类实例【附demo源码下载】
- dea_des ecb模式 java php c#实现
- Java实现(10)——装饰者模式(Decorator Pattern)
- php,java实现原型模式
- php,java实现中介者模式
- Java基于装饰者模式实现的染色馒头案例详解
- 大话设计模式--java实现装饰者设计模式与补充
- php,java实现访问者模式
- php,java实现观察者模式