设计模式 装饰器模式,java装饰器的使用场景

  设计模式 装饰器模式,java装饰器的使用场景

  00-1010优缺点使用场景一,实现方式二,测试总结

  

目录

1.修饰类和修饰类可以独立开发,不会互相耦合。装饰模式是继承的替代模式,装饰模式可以动态扩展实现类的功能。

 

  00-1010 2.多层装修比较复杂。

  00-1010 1.扩展一个类的功能。

  2.动态添加功能,动态取消功能。

  00-1010让我们假设一个场景。我们的房间每天起床和睡觉的时候都刷牙。刷牙这个动作是一个装饰品的作用,更有利于我们的口腔健康。接下来,我们来看看如何实现具体的装饰器。

  1、日常生活的界面

  包com . asur plus.common . decorator;/* * *日常生活界面*/公共界面Live {/** *每天要做的事情*/void Live();}2、起床的实现类

  包com . asur plus.common . decorator;导入lombok . extern . SLF 4j . SLF 4j;/* * *唤醒实现类*/@ slf4jpublic类getup实现live { @ override public void live(){ log . info( wake up );} }3、睡觉的实现类

  包com . asur plus.common . decorator;导入lombok . extern . SLF 4j . SLF 4j;/* * * sleep实现类*/@ slf4jpublic类sleep live实现live { @ override public void live(){ log . info( sleeping );} }4、装饰器类

  包com . asur plus.common . decorator;导入lombok . extern . SLF 4j . SLF 4j;/* * * Decorator类*/@ slf4jpublic类Live Decorator { Private Live Livepublic Live decorator(Live Live){ this . Live=Live;} public void live(){//life live . live();//刷牙brushthes();}私有Void刷牙(){log.info(刷牙);}}

  

优点

包com . asur plus.common . decorator;/* * * Decorator mode */public class test main { public static void main(string[]args){//Get up live Decorator Get up=new live Decorator(new getup());getup . live();system . out . println();//sleep live decorator sleep=newlivedecorator(newsleeplive());sleep . live();} }输出结果

 

  可以看到,我们起床和睡觉的时候,我们刷牙,从而实现了我们的装饰者模式。

  

缺点

本文到此为止。希望它能帮到你,也希望你能多关注更多的盛行它的内容!

 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: