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

java橋接和裝飾

張吉惟1年前6瀏覽0評論

Java作為一門廣泛應用于企業級應用及其他各方面領域的編程語言,其橋接和裝飾兩種設計模式被廣泛應用于軟件開發。

Java橋接則是一種很重要的設計模式,它主要用于連接應用程序的兩個部分。Java橋接模式將抽象部分與它的實現部分分離開來,從而讓它們可以獨立變化。

public interface DrawAPI {
public void drawCircle(int radius, int x, int y);
}
public class RedCircle implements DrawAPI {
public void drawCircle(int radius, int x, int y) {
System.out.println("Drawing Circle[ color: red, radius: " + radius + ", x: " + x + ", " + y + "]");
}
}
public abstract class Shape {
protected DrawAPI drawAPI;
protected Shape(DrawAPI drawAPI){
this.drawAPI = drawAPI;
}
public abstract void draw();	
}
public class Circle extends Shape {
private int x, y, radius;
public Circle(int x, int y, int radius, DrawAPI drawAPI) {
super(drawAPI);
this.x = x;  
this.y = y;  
this.radius = radius;
}
public void draw() {
drawAPI.drawCircle(radius,x,y);
}
}

另外,Java裝飾模式則是為已有的對象添加額外的功能,同時又不改變其結構的一種模式。Java裝飾模式在不必增加子類的情況下,使用不同的組合來達到不同的目的。這種類型的設計模式屬于結構型模式,它是作為現有的類的一個包裝。

public interface Pizza {
public String getDescription();
public double getCost();
}
public class PlainPizza implements Pizza {
public String getDescription() {
return "Thin dough";
}
public double getCost() {
System.out.println("Cost of Dough: " + 4.00);
return 4.00;
}
}
public abstract class ToppingsDecorator implements Pizza {
protected Pizza tempPizza;
public  ToppingsDecorator(Pizza newPizza) {
tempPizza = newPizza;
}
public String getDescription() {
return tempPizza.getDescription();
}
public double getCost() {
return tempPizza.getCost();
}
}
public class Cheese extends ToppingsDecorator {
public Cheese(Pizza newPizza) {
super(newPizza);
System.out.println("Adding Cheese");
}
public String getDescription() {
return tempPizza.getDescription() + ", Cheese";
}
public double getCost() {
System.out.println("Cost of Cheese: " + .50);
return tempPizza.getCost() + .50;
}
}

Java橋接和裝飾都是非常重要的設計模式,它們的應用可以進一步提高Java編程的功效和實用性。