首页 > 编程知识 正文

java插件化开发框架,java中的装饰者模式是什么意思

时间:2023-05-05 17:14:02 阅读:135283 作者:2803

//20210118

前面写了:期末考试刚结束,考了面向对象。 里面有23种设计模式。 考试结束后我想一个一个地实现。 本文实现装饰者模式

中心思想:

创建具有原始属性的对象,并通过添加类逐个装饰原始对象

源代码如下所示。

//初始接口

公共界面最大{

字符串获取结果(;

}

//具有初始属性的类

publicclassnormalmanimplementsman {

私有字符串名称;

publicnormalman(stringname ) {

this.name=name;

}

@Override

公共字符串获取

返回名称' : ';

}

}

//抽象装饰类

publicabstractclassattachedpropertiesdecoratorimplementsman {

私有最大;

publicattachedpropertiesdecorator (man ) {

this.man=man;

}

@Override

公共字符串获取

return man.getDes (;

}

}

//实现装饰类1

publicclasscardecoratorextendsattachedpropertiesdecorator {

private String car='有车';

publiccardecorator (man ) {

super(man;

}

公共字符串添加卡

return this.car ';

}

@Override

公共字符串获取

return super.getDes () this.addCar );

}

}

//实现装饰类2

publicclassdepositedecoratorextendsattachedpropertiesdecorator {

private String deposite='有存款';

publicdepositedecorator (man ) {

super(man;

}

公共字符串添加深度(

return this.deposite ';

}

@Override

公共字符串获取

return super.getDes () this.addDeposite );

}

}

//实现装饰类3

publicclasshousedecoratorextendsattachedpropertiesdecorator {

private String house='有房间';

publichousedecorator(manman ) {

super(man;

}

publicstringaddhouse ((return this.house ' ) );

}

@Override

公共字符串获取

return super.getDes () this.addHouse );

}

}

//实现装饰系统4

publicclassqualitydecoratorextendsattachedpropertiesdecorator {

私有字符串质量='有好的质量';

publicqualitydecorator (man ) {

super(man;

}

公共字符串添加质量

return this.quality ';

}

@Override

公共字符串获取

return super.getDes () this.addQuality );

}

}

//测试主类

public class Main {

publicstaticvoidmain (string [ ] args ) {

manman=newnormalman(DDDGS );

system.out.println(man.getdes );

man=newcardecorator(man; //输入车的属性

system.out.println(man.getdes );

man=newdepositedecorator(man; //加入存款金属性

system.out.println(man.getdes );

man=newhousedecorator(man; //输入房屋属性

system.out.println(man.getdes );

man=newqualitydecorator(man; //输入房屋属性

system.out.println(man.getdes );

}

}

输出:如下所示

以上是

希望对大家有帮助

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。