抽象工厂模式

抽象工厂模式

抽象工厂模式与工厂方法模式最大的区别在于工厂方法模式针对的是一个产品等级结构,而抽象工厂模式则需要面对多个产品等级结构。简单的说,抽象工厂模式生产一系列的产品(这类产品称为产品族)。而在工厂方法模式里一个具体的工厂只生产一个具体的产品类。



java代码:

//Button.java

package com.designpattern.abstractfactory;
public interface Button {
public void type();
}


//WindowsButton.java

package com.designpattern.abstractfactory;
public class WindowsButton implements Button {
public void type() {
System.out.println("this is a Windows Button");
}
}

//LinuxButton.java

package com.designpattern.abstractfactory;
public class LinuxButton implements Button {
public void type() {
System.out.println("this is a Linux Button");
}
}


//Dialog.java

package com.designpattern.abstractfactory;
public interface Dialog {
public void type();
}


//WindowsDialog.java

package com.designpattern.abstractfactory;
public class WindowsDialog implements Dialog{
public void type() {
System.out.println("this is a Windows Dialog");
}
}


//LinuxDialog.java

package com.designpattern.abstractfactory;
public class LinuxDialog  implements Dialog{
public void type() {
System.out.println("this is a Linux Dialog");
}
}


//OSFactory.java

package com.designpattern.abstractfactory;
public abstract class OSFactory {
public abstract Button createButton();
public abstract Dialog createDialog();
}

//WindowsFactory.java

package com.designpattern.abstractfactory;
public class WindowsFactory extends OSFactory {

public Button createButton() {
return new WindowsButton();
}
public Dialog createDialog() {
return new WindowsDialog();
}
}

//LinuxFactory.java

package com.designpattern.abstractfactory;
public class LinuxFactory extends OSFactory {
public Button createButton() {
return new LinuxButton();
}
public Dialog createDialog() {
return new LinuxDialog();
}
}

//test.java

package com.designpattern.abstractfactory;
public class test {
public static void main(String[] args) {
OSFactory factory = new LinuxFactory();
Button btn =factory.createButton();
Dialog dlg = factory.createDialog();
btn.type();
dlg.type();
}
}

该测试也可以利用XML支持,对上一章已经有所简介,这里简单运用,不进行XML文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值