最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中常用的設(shè)計(jì)模式之裝飾器模式詳解

 更新時(shí)間:2022年02月27日 11:33:03   作者:Asurplus、  
這篇文章主要為大家詳細(xì)介紹了Java中常用的設(shè)計(jì)模式之裝飾器模式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

優(yōu)點(diǎn)

1.裝飾類和被裝飾類可以獨(dú)立發(fā)展,不會(huì)相互耦合,裝飾模式是繼承的一個(gè)替代模式,裝飾模式可以動(dòng)態(tài)擴(kuò)展一個(gè)實(shí)現(xiàn)類的功能。

缺點(diǎn)

2.多層裝飾比較復(fù)雜。

使用場(chǎng)景

1.擴(kuò)展一個(gè)類的功能。

2.動(dòng)態(tài)增加功能,動(dòng)態(tài)撤銷。

一、實(shí)現(xiàn)方式

假設(shè)一個(gè)場(chǎng)景,我們房間每天起床都要刷牙, 睡覺也要刷牙,刷牙的動(dòng)作就是一個(gè)裝飾器的作用,這樣更利于我們的口腔健康。接下來我們就看看具體的裝飾器如何實(shí)現(xiàn)。

1、每天生活的接口

package com.asurplus.common.decorator;
/**
 * 每天的生活接口
 */
public interface Live {
    /**
     * 每天需要做的事情
     */
    void live();
}

2、起床的實(shí)現(xiàn)類

package com.asurplus.common.decorator;
import lombok.extern.slf4j.Slf4j;
/**
 * 起床實(shí)現(xiàn)類
 */
@Slf4j
public class GetUpLive implements Live {
    @Override
    public void live() {
        log.info("起床了");
    }
}

3、睡覺的實(shí)現(xiàn)類

package com.asurplus.common.decorator;
import lombok.extern.slf4j.Slf4j;
/**
 * 睡覺實(shí)現(xiàn)類
 */
@Slf4j
public class SleepLive implements Live {
    @Override
    public void live() {
        log.info("睡覺了");
    }
}

4、裝飾器類

package com.asurplus.common.decorator;
import lombok.extern.slf4j.Slf4j;
/**
 * 裝飾器類
 */
@Slf4j
public class LiveDecorator {
    private Live live;
    public LiveDecorator(Live live) {
        this.live = live;
    }
    public void live() {
        // 生活
        live.live();
        // 刷牙
        brushTeeth();
    }
    private void brushTeeth() {
        log.info("刷牙去咯");
    }
}

二、測(cè)試

package com.asurplus.common.decorator;
/**
 * 裝飾器模式
 */
public class TestMain {
    public static void main(String[] args) {
        // 起床
        LiveDecorator getUp = new LiveDecorator(new GetUpLive());
        getUp.live();
        System.out.println();
        // 睡覺
        LiveDecorator sleep = new LiveDecorator(new SleepLive());
        sleep.live();
    }
}

輸出結(jié)果

在這里插入圖片描述

可以看出,起床和睡覺,都刷了牙,從而實(shí)現(xiàn)了我們的裝飾器模式。

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!  

相關(guān)文章

  • idea自動(dòng)加載html、js而無需重啟進(jìn)程的操作

    idea自動(dòng)加載html、js而無需重啟進(jìn)程的操作

    這篇文章主要介紹了idea自動(dòng)加載html、js而無需重啟進(jìn)程的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 如何在 Spring Boot 中配置和使用 CSRF 保護(hù)

    如何在 Spring Boot 中配置和使用 CSRF 保護(hù)

    CSRF是一種網(wǎng)絡(luò)攻擊,它利用已認(rèn)證用戶的身份來執(zhí)行未經(jīng)用戶同意的操作,Spring Boot 提供了內(nèi)置的 CSRF 保護(hù)機(jī)制,可以幫助您防止這種類型的攻擊,這篇文章主要介紹了Spring?Boot?中的?CSRF?保護(hù)配置的使用方法,需要的朋友可以參考下
    2023-09-09
  • Mybatis?XML配置文件實(shí)現(xiàn)增刪改查的示例代碼

    Mybatis?XML配置文件實(shí)現(xiàn)增刪改查的示例代碼

    本文主要介紹了Mybatis?XML配置文件實(shí)現(xiàn)增刪改查的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • SpringCloud Feign配置應(yīng)用詳細(xì)介紹

    SpringCloud Feign配置應(yīng)用詳細(xì)介紹

    這篇文章主要介紹了SpringCloud Feign配置應(yīng)用,feign是netflix提供的服務(wù)間基于http的rpc調(diào)用框架,在spring cloud得到廣泛應(yīng)用
    2022-09-09
  • Java8新特性之方法引用的實(shí)踐指南

    Java8新特性之方法引用的實(shí)踐指南

    這篇文章主要給大家介紹了關(guān)于Java8新特性之方法引用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 淺談Spring Boot 異常處理篇

    淺談Spring Boot 異常處理篇

    本篇文章主要介紹了淺談Spring Boot 異常處理篇,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • Java服務(wù)器宕機(jī)的解決方法論

    Java服務(wù)器宕機(jī)的解決方法論

    這篇文章主要介紹了Java服務(wù)器宕機(jī)的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Spring Data分頁與排序的實(shí)現(xiàn)方法

    Spring Data分頁與排序的實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于Spring Data分頁與排序的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • 淺談SpringMVC的攔截器(Interceptor)和Servlet 的過濾器(Filter)的區(qū)別與聯(lián)系 及SpringMVC 的配置文件

    淺談SpringMVC的攔截器(Interceptor)和Servlet 的過濾器(Filter)的區(qū)別與聯(lián)系 及Spr

    這篇文章主要介紹了淺談SpringMVC的攔截器(Interceptor)和Servlet 的過濾器(Filter)的區(qū)別與聯(lián)系 及SpringMVC 的配置文件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Spring中存對(duì)象和取對(duì)象的方式詳解

    Spring中存對(duì)象和取對(duì)象的方式詳解

    這篇文章主要介紹了Spring中存對(duì)象和取對(duì)象的方式,Spring中更簡(jiǎn)單的存對(duì)象與取對(duì)象的方式是注解,注解實(shí)現(xiàn)有兩種方式:一在編譯的時(shí)候,把注解替換成相關(guān)代碼,并添加到我們?cè)瓉淼拇a中,二攔截方法,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2024-08-08

最新評(píng)論

房产| 桐城市| 临西县| 乾安县| 山西省| 黑龙江省| 宁陵县| 寿阳县| 宣汉县| 定西市| 泰安市| 新闻| 商丘市| 礼泉县| 莆田市| 疏附县| 泗水县| 徐闻县| 区。| 比如县| 塔城市| 连江县| 蒙阴县| 河池市| 上饶县| 马边| 丘北县| 扎鲁特旗| 卓资县| 张掖市| 尚义县| 米易县| 华蓥市| 体育| 涟源市| 四川省| 田东县| 襄樊市| 光山县| 甘德县| 靖边县|