设计模式3: Abstract Factory

Button.java:

package gendwang.cisco.com;

public interface Button 
{
	public String getName();
}

UnixButton.java:

package gendwang.cisco.com;

public class UnixButton implements Button
{
	public String getName()
	{
		return "Unix Button";
	}
}

WindowsButton.java:

package gendwang.cisco.com;

public class WindowsButton implements Button
{
	public String getName()
	{
		return "Windows Button";
	}
}

Dialog.java:

package gendwang.cisco.com;

public interface Dialog 
{
	public String getName();
}

UnixDialog.java:

package gendwang.cisco.com;

public class UnixDialog implements Dialog
{
	public String getName()
	{
		return "Unix Dialog";
	}
}

WindowsDialog.java:

package gendwang.cisco.com;

public class WindowsDialog implements Dialog
{
	public String getName()
	{
		return "Windows Dialog";
	}
}

Factory.java:

package gendwang.cisco.com;

public interface Factory 
{
	public Button getButton();
	public Dialog getDialog();
}

UnixFactory.java:

package gendwang.cisco.com;

public class UnixFactory implements Factory
{
	public Button getButton()
	{
		return new UnixButton();
	}
	
	public Dialog getDialog()
	{
		return new UnixDialog();
	}
}

WindowsFactory.java:

package gendwang.cisco.com;

public class WindowsFactory implements Factory
{
	public Button getButton()
	{
		return new WindowsButton();
	}
	
	public Dialog getDialog()
	{
		return new WindowsDialog();
	}
}

Test.java:

package gendwang.cisco.com;

public class Test 
{
	public static void main(String[] args)
	{
		Factory unixFactory = new UnixFactory();
		Button unixButton = unixFactory.getButton();
		System.out.println("One Button:" + unixButton.getName() + " is created");
		Dialog unixDialog = unixFactory.getDialog();
		System.out.println("One Dialog:" + unixDialog.getName() + " is created");
		
		Factory windowsFactory = new WindowsFactory();
		Button windowsButton = windowsFactory.getButton();
		System.out.println("One Button:" + windowsButton.getName() + " is created");
		Dialog windowsDialog = windowsFactory.getDialog();
		System.out.println("One Dialog:" + windowsDialog.getName() + " is created");
	}
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值