工廠模式是個很好的設計模式,他把每個輸出拆成類別,有兩個優點
工廠模式有三種,分別是
就跟「HTML 不是程式語言一樣」,有些人會說「簡單工廠不是設計模式」,所以學「抽象工廠模式」就好
假設我是補習班工廠,要產出工程師、設計師
public interface MakeVocationalProduct {
String getName(String name);
}
public interface CreateVocationalFactory {
MakeVocationalProduct createVocational();
}
3-1. 製造工程師
public class MakeEngineerProduct implements MakeVocationalProduct {
@Override
public String getName(String name) {
return "工程師: " + name;
}
}
3-2. 製造設計師
public class MakeDesignerProduct implements MakeVocationalProduct {
@Override
public String getName(String name) {
return "設計師: " + name;
}
}
4-1. 創造工程師工廠
public class CreateEngineerFactory implements CreateVocationalFactory {
@Override
public MakeVocationalProduct createVocational() {
return new MakeEngineerProduct();
}
}
4-2. 創造設計師工廠
public class CreateDesignerFactory implements CreateVocationalFactory {
@Override
public MakeVocationalProduct createVocational() {
return new MakeDesignerProduct();
}
}
//產生工程師
CreateVocationalFactory engineer = new CreateEngineerFactory();
//產生設計師
CreateVocationalFactory designer = new CreateDesignerFactory();
//印出日誌
Log.d("Tag", engineer.createVocational().getStaff("Andy") + " / " + designer.createVocational().getStaff("AWD"));
工程師: Andy / 設計師: AWD