[原]抽象工厂模式

[关键字]: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();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值