Java 工廠模式和模板模式都是設計模式中較為常見的模式,下面就對這兩種設計模式進行簡要的介紹。
Java 工廠模式
Java 工廠模式是一種創建型設計模式,它提供了一種創建對象的接口,但是具體的創建過程則由其子類來實現。工廠模式可以有效的隔離代碼,使得高層模塊不需要關心對象的創建過程,只需要使用工廠提供的接口即可。
public interface Shape {
void draw();
}
public class Circle implements Shape {
@Override
public void draw() {
System.out.println("Circle::draw() method.");
}
}
public class Square implements Shape {
@Override
public void draw() {
System.out.println("Square::draw() method.");
}
}
public class ShapeFactory {
public static Shape getShape(String shapeType) {
if (shapeType == null) {
return null;
}
if (shapeType.equalsIgnoreCase("circle")) {
return new Circle();
} else if (shapeType.equalsIgnoreCase("square")) {
return new Square();
}
return null;
}
}
Java 模板模式
Java 模板模式是一種行為設計模式,它定義了一個操作中的算法的骨架,而將一些步驟延遲到子類中。模板模式可以提供可復用的代碼,減少代碼重復度,同時也便于擴展。
public abstract class Game {
abstract void initialize();
abstract void startPlay();
abstract void endPlay();
public final void play() {
initialize();
startPlay();
endPlay();
}
}
public class Cricket extends Game {
@Override
void endPlay() {
System.out.println("Cricket Game Finished!");
}
@Override
void initialize() {
System.out.println("Cricket Game Initialized! Start playing.");
}
@Override
void startPlay() {
System.out.println("Cricket Game Started. Enjoy the game!");
}
}
public class Football extends Game {
@Override
void endPlay() {
System.out.println("Football Game Finished!");
}
@Override
void initialize() {
System.out.println("Football Game Initialized! Start playing.");
}
@Override
void startPlay() {
System.out.println("Football Game Started. Enjoy the game!");
}
}
以上就是對 Java 工廠模式和模板模式的簡要介紹。
上一篇php apm 性能