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

java裝飾模式和適配器模式

劉若蘭1年前7瀏覽0評論

Java裝飾模式和適配器模式是兩種常用的軟件設計模式,它們各自有著不同的應用場景和實現方式。

裝飾模式是一種結構型模式,它可以在不改變原有對象的結構和功能的基礎上,動態地給對象添加新的功能。這種模式的核心在于定義一個接口,該接口可以被裝飾器和被裝飾對象共同實現,并且裝飾器可以在不影響被裝飾對象的前提下來增強其功能。

public interface IPerson {
void introduce();
}
public class Student implements IPerson {
public void introduce() {
System.out.println("I am a student.");
}
}
public abstract class PersonDecorator implements IPerson {
protected IPerson person;
public PersonDecorator(IPerson person) {
this.person = person;
}
public void introduce() {
person.introduce();
}
}
public class SportsDecorator extends PersonDecorator {
public SportsDecorator(IPerson person) {
super(person);
}
public void introduce() {
super.introduce();
System.out.println("I like sports.");
}
}
public static void main(String[] args) {
IPerson student = new Student();
IPerson studentWithSportHobby = new SportsDecorator(student);
studentWithSportHobby.introduce();
}

適配器模式也是一種結構型模式,它的主要作用是將一個接口轉換為另一個接口,從而實現不同接口之間的兼容性。適配器通常在系統需要使用某些已有的類,但這些類與系統接口不兼容時使用。

public interface ILogger {
void info(String msg);
}
public class Log4jLogger {
private Logger logger;
public Log4jLogger(String name) {
logger = Logger.getLogger(name);
}
public void log(String msg) {
logger.info(msg);
}
}
public class AdapterLogger implements ILogger {
private Log4jLogger log4jLogger;
public AdapterLogger(Log4jLogger log4jLogger) {
this.log4jLogger = log4jLogger;
}
public void info(String msg) {
log4jLogger.log(msg);
}
}
public static void main(String[] args) {
ILogger logger = new AdapterLogger(new Log4jLogger("myLogger"));
logger.info("Hello World!");
}

總之,裝飾模式和適配器模式都是很實用的軟件設計模式,可以幫助我們編寫更加靈活和可維護的代碼。