欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java裝飾者模式和適配器模式

錢衛國1年前5瀏覽0評論

Java是一門非常流行的編程語言,其提供了很多設計模式來幫助開發者更好地組織和管理代碼。本文將介紹兩種常見的設計模式——裝飾者模式和適配器模式。

裝飾者模式(Decorator Pattern)是一種結構型設計模式,它允許你動態地將行為添加到對象中,同時不影響其他對象的行為。這種模式通常用于需要大量靈活性的情況下,比如需要為一個類添加多個不同的行為而不想創建新的子類。

//抽象類
public abstract class Pizza {
String description = "Unknown Pizza";
public String getDescription() {
return description;
}
public abstract double cost();
}
//具體類
public class MargheritaPizza extends Pizza {
public MargheritaPizza() {
description = "Margherita Pizza";
}
public double cost() {
return 6.99;
}
}
//裝飾者類
public abstract class ToppingDecorator extends Pizza {
public abstract String getDescription();
}
//具體裝飾者類
public class Cheese extends ToppingDecorator {
Pizza pizza;
public Cheese(Pizza pizza) {
this.pizza = pizza;
}
public String getDescription() {
return pizza.getDescription() + ", Cheese";
}
public double cost() {
return .20 + pizza.cost();
}
}
//使用裝飾者模式
Pizza pizza = new MargheritaPizza();
pizza = new Cheese(pizza);
System.out.println(pizza.getDescription() + " $" + pizza.cost());
//輸出:Margherita Pizza, Cheese $7.19

適配器模式(Adapter Pattern)是一種結構型設計模式,它允許你將一個類的接口轉換成客戶希望的另一個接口。適配器模式常用于需要使用舊接口的情況下,比如重構一個舊的應用或者使用一個舊類庫。

//原始類
public class Adaptee {
public void specificRequest() {
System.out.println("Specific request from Adaptee");
}
}
//目標接口
public interface Target {
void request();
}
//適配器類
public class Adapter implements Target {
private Adaptee adaptee;
public Adapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
public void request() {
adaptee.specificRequest();
}
}
//使用適配器模式
Adaptee adaptee = new Adaptee();
Target target = new Adapter(adaptee);
target.request();
//輸出:Specific request from Adaptee

以上就是關于裝飾者模式和適配器模式的簡介。這兩種設計模式在Java中都有很廣泛的應用,對于提高代碼的可擴展性和可維護性都有很大的幫助。