做企业网站一般用什么服务器,怎么让别人访问我建的网站,黄山网站开发,建设银行信用卡申请官方网站装饰者模式的实现有两个要求#xff1a;1.装饰者类与目标类要实现相同的借口#xff0c;或者继承自相同的抽象类。2.装饰者类中要有目标类的引用作为成员变量#xff0c;具体的赋值一般通过带参构造器完成。 按着这两个要求我们进行类的编写。 目标类#xff1a; //接口
pa…装饰者模式的实现有两个要求1.装饰者类与目标类要实现相同的借口或者继承自相同的抽象类。2.装饰者类中要有目标类的引用作为成员变量具体的赋值一般通过带参构造器完成。 按着这两个要求我们进行类的编写。 目标类 //接口
package com.wk.decorator;public interface IMyService {String sayHello();
}
//实现类
package com.wk.decorator;public class IMyServiceImpl implements IMyService {Overridepublic String sayHello() {return hello;}} 装饰者基类 package com.wk.decorator;//装饰者基类不对目标类进行增强 无参构造目标对象引用
public class DecoratorBase implements IMyService {protected IMyService target;public DecoratorBase() {super();}public DecoratorBase(IMyService target) {this.target target;}Overridepublic String sayHello() {//调用目标方法 不增强。return target.sayHello();}} 具体装饰者类 //具体装饰者类1
package com.wk.decorator;
//具体装饰类继承基类单一增强。有参构造。
public class WhoSay extends DecoratorBase {public WhoSay(IMyService target) {super(target);}//重写基类业务方法 增强。Overridepublic String sayHello() {return Jack say super.sayHello();}
}
//具体装饰者类2
package com.wk.decorator;public class toWho extends DecoratorBase {public toWho(IMyService target) {super(target);}Overridepublic String sayHello() {// TODO Auto-generated method stubreturn super.sayHello() to Tom;}
} 测试 package com.wk.decorator;public class Test {public static void main(String[] args) {//创建目标对象 IMyService targetnew IMyServiceImpl(); //使用目标对象作为参数创建装饰者类 IMyService whonew WhoSay(target); String onewho.sayHello(); System.out.println(one); //将第一次增强的结果作为第二次增强的参数出现形成“装饰者链” IMyService towhonew toWho(who); String twotowho.sayHello(); System.out.println(two);}
} 测试结果 Jack say hello
Jack say hello to Tom看完装饰者模式你是不是想到了静态代理模式。觉得两者之间有点相似。若是你能有如此想法那么不妨读一下本博文的静态代理模式。具体讲解两者的相同点与不同点。转载于:https://www.cnblogs.com/wangyanei2017/p/9213813.html