[關鍵字]:java,design pattern,設計模式,《Java與模式》,Abstract Factory,抽象工廠模式
[環境]:StarUML5.0 + JDK6
[作者]:Winty (wintys@gmail.com)
[正文]:
/**
* 抽象工廠:Button and Text of Windows and Unix
* @version 2009-4-11
* @author Winty(wintys@gmail.com)
*/
package pattern.abstractfactory;
public class AbstractFactory{
public static void main(String[] args){
Factory unix , win;
unix = new UnixFactory();
win = new WindowsFactory();
//創建Unix產品
Button btn1 = unix.createButton();
Text text1 = unix.createText();
System.out.println("");
//創建Windows產品
Button btn2 = win.createButton();
Text text2 = win.createText();
}
}
//產品等級1
abstract class Button{
protected String type;
public Button(){
type = "Button";
}
}
class UnixButton extends Button{
public UnixButton(){
System.out.println("Unix" + type);
}
}
class WindowsButton extends Button{
public WindowsButton(){
System.out.println("Windows" + type);
}
}
//產品等級2
abstract class Text{
protected String type;
public Text(){
type = "Text";
}
}
class UnixText extends Text{
public UnixText(){
System.out.println("Unix"+type);
}
}
class WindowsText extends Text{
public WindowsText(){
System.out.println("Windows"+type);
}
}
//抽象工廠
abstract class Factory{
public abstract Button createButton();
public abstract Text createText();
}
class UnixFactory extends Factory{
public Button createButton(){
return new UnixButton();
}
public Text createText(){
return new UnixText();
}
}
class WindowsFactory extends Factory{
public Button createButton(){
return new WindowsButton();
}
public Text createText(){
return new WindowsText();
}
}
posted on 2009-04-14 19:25
天堂露珠 閱讀(1362)
評論(0) 編輯 收藏 所屬分類:
Pattern