抽象工厂模式
来源:互联网 发布:c erp系统源码下载 编辑:程序博客网 时间:2024/06/14 02:57
抽象工厂模式
抽象工厂模式与工厂方法模式最大的区别在于工厂方法模式针对的是一个产品等级结构,而抽象工厂模式则需要面对多个产品等级结构。简单的说,抽象工厂模式生产一系列的产品(这类产品称为产品族)。而在工厂方法模式里一个具体的工厂只生产一个具体的产品类。
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文件。
- 工厂模式 -- 抽象工厂
- 工厂模式-抽象工厂
- 工厂模式-抽象工厂
- 工厂模式/抽象工厂模式
- 工厂模式&&抽象工厂模式
- 工厂模式---抽象工厂模式
- 工厂模式&抽象工厂模式
- 工厂模式,抽象工厂模式
- 【模式】抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂&工厂模式&抽象工厂模式
- 工厂方法,抽象工厂模式
- 2,工厂模式--抽象工厂
- C#工厂模式-抽象工厂
- 工厂模式与抽象工厂
- 抽象工厂设计模式
- 抽象工厂模式
- Google Android手机代号
- PHP 对特殊字符进行安全过滤的方法与代码示例
- django使用 Paginator 实现分页功能
- Linux下端口复用(SO_REUSEADDR与SO_REUSEPORT)
- github使用
- 抽象工厂模式
- 一些学习java的一些技巧!
- 一个Tomcat支持不同的域名访问各自不同程序的配置方法实践
- 英文拼写纠错
- js 实现 map
- Linux下IPTABLES防火墙的设定
- WCF实现Session信息
- 数据库基本知识
- android漏洞收集3-短信程序smsreceiverservice服务暴露