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

Java設(shè)計(jì)模式之裝飾者模式詳解

 更新時(shí)間:2021年10月14日 11:16:44   作者:塵小新  
這篇文章主要為大家詳細(xì)介紹了java設(shè)計(jì)模式之裝飾者模式,裝飾者模式是一種結(jié)構(gòu)式模式,感興趣的朋友可以參考一下

裝飾器模式(Decorator Pattern)允許向一個(gè)現(xiàn)有的對(duì)象添加新的功能,同時(shí)又不改變其結(jié)構(gòu)。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它是作為現(xiàn)有的類的一個(gè)包裝。

以一個(gè)Person對(duì)象為例。Person作為一個(gè)接口,Student(學(xué)生)和Doctor(醫(yī)生)為Person接口的兩個(gè)具體類,DecoratorPerson為Person的裝飾類,可對(duì)具體類進(jìn)行裝飾。ShoeDecorator(鞋子裝飾類)和DressDecorator(衣服裝飾類)為具體的裝飾類。這個(gè)案例可對(duì)學(xué)生和醫(yī)生進(jìn)行裝飾。

具體代碼:

Person:

public interface Person {
   void description();    
}

Student:

public class Student implements Person {
	@Override
	public void description() {
		System.out.println("學(xué)生");
	}
}

Doctor:

public class Doctor implements Person {
	@Override
	public void description() {
		System.out.println("醫(yī)生");
	}
}

DecoratePerson:

public class DecoratePerson implements Person {
	private Person person;
	public DecoratePerson(Person person) {
		this.person = person;
	}
	@Override
	public void description() {
		person.description();
	}
}

ShoeDecorate:

public class ShoeDecorate extends DecoratePerson  {
	public ShoeDecorate(Person person) {
		super(person);
	}
	@Override
	public void description() {
		super.description();
		System.out.println("穿鞋子");
	}
}

DressDecorate:

public class DressDecorate extends DecoratePerson  {
	public DressDecorate(Person person) {
		super(person);
	}
	@Override
	public void description() {
		super.description();
		System.out.println("穿衣服");
	}
}

測(cè)試類:根據(jù)裝飾的順序和對(duì)象不同,呈現(xiàn)不同的結(jié)果和順序

總結(jié)

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

相關(guān)文章

  • SpringBoot實(shí)現(xiàn)微信小程序支付功能

    SpringBoot實(shí)現(xiàn)微信小程序支付功能

    小程序支付功能已成為眾多應(yīng)用的核心需求之一,本文主要介紹了SpringBoot實(shí)現(xiàn)微信小程序支付功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • IDEA中Spring項(xiàng)目的工程構(gòu)建

    IDEA中Spring項(xiàng)目的工程構(gòu)建

    這篇文章主要介紹了IDEA中Spring項(xiàng)目的工程構(gòu)建,Spring框架是輕量級(jí)的JavaEE框架,可以解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性,有兩個(gè)核心部分:IOC和Aop,今天來學(xué)習(xí)如何構(gòu)建spring項(xiàng)目,需要的朋友可以參考下
    2023-05-05
  • swagger中如何給請(qǐng)求添加header

    swagger中如何給請(qǐng)求添加header

    這篇文章主要介紹了swagger中如何給請(qǐng)求添加header,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • SpringBoot項(xiàng)目集成xxljob實(shí)現(xiàn)全紀(jì)錄

    SpringBoot項(xiàng)目集成xxljob實(shí)現(xiàn)全紀(jì)錄

    XXL-JOB是一個(gè)分布式任務(wù)調(diào)度平臺(tái),本文主要介紹了SpringBoot項(xiàng)目集成xxljob實(shí)現(xiàn)全紀(jì)錄,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Java實(shí)現(xiàn)鏈棧的示例代碼

    Java實(shí)現(xiàn)鏈棧的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何使用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)來實(shí)現(xiàn)棧,也就是鏈棧的實(shí)現(xiàn),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-11-11
  • 基于Java SSM實(shí)現(xiàn)Excel數(shù)據(jù)批量導(dǎo)入

    基于Java SSM實(shí)現(xiàn)Excel數(shù)據(jù)批量導(dǎo)入

    這篇文章主要為大家詳細(xì)介紹了基于Java SSM如何實(shí)現(xiàn)excel數(shù)據(jù)批量導(dǎo)入,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • SpringBoot項(xiàng)目導(dǎo)入外部jar包的詳細(xì)指南

    SpringBoot項(xiàng)目導(dǎo)入外部jar包的詳細(xì)指南

    在開發(fā)SpringBoot項(xiàng)目時(shí),我們經(jīng)常需要引入一些外部的jar包來增強(qiáng)項(xiàng)目的功能,這些jar包可能不是Maven中央倉庫中的,或者我們想要使用特定版本的jar包,本文將詳細(xì)介紹如何在SpringBoot項(xiàng)目中導(dǎo)入外部jar包,需要的朋友可以參考下
    2024-10-10
  • SpringBoot整合MyBatis超詳細(xì)教程

    SpringBoot整合MyBatis超詳細(xì)教程

    這篇文章主要介紹了SpringBoot整合MyBatis超詳細(xì)教程,下面從配置模式、注解模式、混合模式三個(gè)方面進(jìn)行說明MyBatis與SpringBoot的整合,需要的朋友可以參考下
    2021-05-05
  • SpringBoot整合mybatis-generator插件流程詳細(xì)講解

    SpringBoot整合mybatis-generator插件流程詳細(xì)講解

    這篇文章主要介紹了SpringBoot整合mybatis-generator插件流程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-02-02
  • Java基本數(shù)據(jù)類型族譜與易錯(cuò)點(diǎn)梳理解析

    Java基本數(shù)據(jù)類型族譜與易錯(cuò)點(diǎn)梳理解析

    Java有八大基本類型,很多同學(xué)只對(duì)經(jīng)常使用的int類型比較了解。有的同學(xué)是剛從C語言轉(zhuǎn)入Java學(xué)習(xí),誤以為兩者的基本數(shù)據(jù)類型完全相同,這也是大錯(cuò)特錯(cuò)的。今天這本Java基本數(shù)據(jù)類型全解析大字典,可以幫助你直接通過目錄找到你想要了解某一種基本數(shù)據(jù)類型
    2022-01-01

最新評(píng)論

油尖旺区| 三河市| 巴林左旗| 南投市| 浮山县| 罗山县| 西丰县| 瑞昌市| 万州区| 宝丰县| 博白县| 昌都县| 汾西县| 曲阳县| 奈曼旗| 邳州市| 盘锦市| 太和县| 启东市| 舒兰市| 安国市| 白河县| 衡东县| 庆云县| 宜良县| 麻城市| 赤壁市| 南靖县| 山阴县| 建平县| 日喀则市| 永靖县| 九寨沟县| 梁山县| 江安县| 平潭县| 昌平区| 当雄县| 武宁县| 宝鸡市| 瑞安市|