装饰者模式——Decorator
装饰者模式——Decorator
package decorator;public class Client {public static void main(String[] args) {Component component=new ConcreteComponent();Component decorator=new Decorator(component);component.setName("小王");System.out.println(component.getName());decorator.setName("小王");System.out.println(decorator.getName());}}?
package decorator;public interface Component {public void setName(String name);public String getName();}public class ConcreteComponent implements Component {String name;@Overridepublic String getName() {return name;}@Overridepublic void setName(String name) {this.name=name;}}
?
装饰者:
package decorator;public class Decorator implements Component {//如果有多个组件,可能用到private List<Component> list;private Component component;public Decorator(Component c){component=c;}@Overridepublic String getName() {/* * 在name前加上"名字是: "——这个效果就是装饰者达到的作用 */return "名字是: "+component.getName();}@Overridepublic void setName(String name) {component.setName(name);}}??
参见《设计模式》板桥里人 http://www.jdon.com 2002/04/28
参见装饰模式(Decorator)解析例子,http://tianli.blog.51cto.com/190322/35287
参见《Java设计模式》