Abstract Factory trừu tượng hơn Factory 1 mức. Thay vì chỉ cần 1 interface Factory, pattern này đòi hỏi thêm 2 lớp Factory hiện thực interface này. Ví dụ interface Factory có 1 phương thức là createButton(), 2 lớp hiện thực là WindowFactory và MacFactory. Hai lớp này sẽ trả về lần lượt 2 đối tượng là WindowButton và MacButton tương ứng. Trong đó WindowButton và MacButton lần lượt là 2 lớp hiện thực của interfact Button.
Code mẫu:
public interface Button {
void paint();
}
public class OSXButton implements Button{
public void paint() {
System.out.println("Draw OSX button");
}
}
public class WindowButton implements Button {
public void paint() {
System.out.println("Drawing Window button");
}
}
public interface Factory {
Button createButton();
}
public class WindowFactory implements Factory {
public Button createButton() {
return new WindowButton();
}
}
public class OSXFactory implements Factory {
public Button createButton() {
return new OSXButton();
}
}
Chạy test:
public static void main(String[] args) {
Factory factory = new WindowFactory();
Button button = factory.createButton();
button.paint();
}
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment