您好,登錄后才能下訂單哦!
這篇文章主要講解了“Java IO的裝飾模式原理”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Java IO的裝飾模式原理”吧!
Java 處理流相當(dāng)于對(duì)節(jié)點(diǎn)流(以File 或Byte 開頭的類)進(jìn)行了包裝裝飾,裝飾模式原理如下
package com.sxt.io; /** * 模擬咖啡 * 1、抽象組件:需要裝飾的抽象對(duì)象(接口或抽象父類) * 2、具體組件:需要裝飾的對(duì)象 * 3、抽象裝飾類:包含了對(duì)抽象組件的引用以及裝飾著共有的方法 * 4、具體裝飾類:被裝飾的對(duì)象 * * @author TW */ public class DecorateTest02 { public static void main(String[] args) { Drink coffee = new Coffee(); Drink suger = new Suger(coffee); //裝飾 System.out.println(suger.info() + "-->" + suger.cost()); Drink milk = new Milk(coffee);//裝飾 System.out.println(milk.info() + "-->" + milk.cost()); milk = new Milk(suger);//裝飾 System.out.println(milk.info() + "-->" + milk.cost()); } } //抽象組件 interface Drink { double cost(); //費(fèi)用 String info(); //說(shuō)明 } //具體組件 class Coffee implements Drink { private String name = "原味咖啡"; @Override public double cost() { return 10; } @Override public String info() { return name; } } //抽象裝飾類 abstract class Decorate implements Drink { //對(duì)抽象組件的引用 private Drink drink; public Decorate(Drink drink) { this.drink = drink; } @Override public double cost() { return this.drink.cost(); } @Override public String info() { return this.drink.info(); } } //具體裝飾類 class Milk extends Decorate { public Milk(Drink drink) { super(drink); } @Override public double cost() { return super.cost() * 4; } @Override public String info() { return super.info() + "加入了牛奶"; } } class Suger extends Decorate { public Suger(Drink drink) { super(drink); } @Override public double cost() { return super.cost() * 2; } @Override public String info() { return super.info() + "加入了蔗糖"; } }
感謝各位的閱讀,以上就是“Java IO的裝飾模式原理”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Java IO的裝飾模式原理這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。