JAVA与模式(一)-----简单工厂模式
2008-03-31 23:10
357 查看
简单工厂模式 举例:
Computer接口:
package com.migo2008.factory;
public interface Computer ...{
//显示器
void display();
//主机
void hostComputer();
//键盘
void keyboard();
//鼠标
void mouse();
//打印信息
void output(String msg);
}
IBM实现Computer
package com.migo2008.factory;
public class IBM implements Computer ...{
/** *//**
* 实现接口
*/
public void display() ...{
output("Display Of IBM");
}
public void hostComputer() ...{
output("HostComputer Of IBM");
}
public void keyboard() ...{
output("Keyboard Of IBM");
}
public void mouse() ...{
output("Mouse Of IBM");
}
public void output(String msg)...{
System.out.println(msg);
}
}
ASUS实现Computer
package com.migo2008.factory;
public class ASUS implements Computer ...{
public void display() ...{
output("Display Of ASUS");
}
public void hostComputer() ...{
output("HostComputer Of ASUS");
}
public void keyboard() ...{
output("Keyboard Of ASUS");
}
public void mouse() ...{
output("Mouse Of ASUS");
}
public void output(String msg)...{
System.out.println(msg);
}
}
Factory类(简单工厂模式的体现)
package com.migo2008.factory;
public class Factory ...{
public static Computer getComputer(String com)...{
if(com.equalsIgnoreCase("IBM"))
return new IBM();
else if(com.equalsIgnoreCase("ASUS"))
return new ASUS();
else
return null;
}
}
User 类使用工厂
package com.migo2008.factory;
public class User ...{
public static void main(String[] args)...{
//通过工厂访问IBM.display()
Factory.getComputer("IBM").display();
Factory.getComputer("IBM").keyboard();
Factory.getComputer("IBM").hostComputer();
Factory.getComputer("IBM").mouse();
//通过工厂访问ASUS.keyboard()
Factory.getComputer("ASUS").display();
Factory.getComputer("ASUS").keyboard();
Factory.getComputer("ASUS").hostComputer();
Factory.getComputer("ASUS").mouse();
}
}
输出结果:
Display Of IBM
Keyboard Of IBM
HostComputer Of IBM
Mouse Of IBM
Display Of ASUS
Keyboard Of ASUS
HostComputer Of ASUS
Mouse Of ASUS
上面分别展示了简单工厂模式中的三种不同角色:
抽象产品角色,工厂角色与具体产品角色
抽象产品角色可以为接口或抽象类.抽象产品角色 可与 工厂角色合并;抽象产品角色,工厂角色与具体产品角色也可合并.
Computer接口:
package com.migo2008.factory;
public interface Computer ...{
//显示器
void display();
//主机
void hostComputer();
//键盘
void keyboard();
//鼠标
void mouse();
//打印信息
void output(String msg);
}
IBM实现Computer
package com.migo2008.factory;
public class IBM implements Computer ...{
/** *//**
* 实现接口
*/
public void display() ...{
output("Display Of IBM");
}
public void hostComputer() ...{
output("HostComputer Of IBM");
}
public void keyboard() ...{
output("Keyboard Of IBM");
}
public void mouse() ...{
output("Mouse Of IBM");
}
public void output(String msg)...{
System.out.println(msg);
}
}
ASUS实现Computer
package com.migo2008.factory;
public class ASUS implements Computer ...{
public void display() ...{
output("Display Of ASUS");
}
public void hostComputer() ...{
output("HostComputer Of ASUS");
}
public void keyboard() ...{
output("Keyboard Of ASUS");
}
public void mouse() ...{
output("Mouse Of ASUS");
}
public void output(String msg)...{
System.out.println(msg);
}
}
Factory类(简单工厂模式的体现)
package com.migo2008.factory;
public class Factory ...{
public static Computer getComputer(String com)...{
if(com.equalsIgnoreCase("IBM"))
return new IBM();
else if(com.equalsIgnoreCase("ASUS"))
return new ASUS();
else
return null;
}
}
User 类使用工厂
package com.migo2008.factory;
public class User ...{
public static void main(String[] args)...{
//通过工厂访问IBM.display()
Factory.getComputer("IBM").display();
Factory.getComputer("IBM").keyboard();
Factory.getComputer("IBM").hostComputer();
Factory.getComputer("IBM").mouse();
//通过工厂访问ASUS.keyboard()
Factory.getComputer("ASUS").display();
Factory.getComputer("ASUS").keyboard();
Factory.getComputer("ASUS").hostComputer();
Factory.getComputer("ASUS").mouse();
}
}
输出结果:
Display Of IBM
Keyboard Of IBM
HostComputer Of IBM
Mouse Of IBM
Display Of ASUS
Keyboard Of ASUS
HostComputer Of ASUS
Mouse Of ASUS
上面分别展示了简单工厂模式中的三种不同角色:
抽象产品角色,工厂角色与具体产品角色
抽象产品角色可以为接口或抽象类.抽象产品角色 可与 工厂角色合并;抽象产品角色,工厂角色与具体产品角色也可合并.
相关文章推荐
- 简单工厂模式-java描述
- 设计模式(Java版)-创建型模式之简单工厂模式
- JAVA设计模式是个什么玩意儿_00_工厂模式家族准备篇_简单工厂模式
- java设计模式之简单工厂模式
- java 谈设计模式之简单工厂
- java深入浅出设计模式----简单的工厂模式(一)----初学者容易犯的错误(一)
- 大话设计模式java版--简单工厂模式
- java设计模式之简单工厂模式
- Java23种设计模式之-----简单工厂模式
- java设计模式之简单工厂模式
- java之设计模式工厂三兄弟之简单工厂模式
- Java 简单工厂模式
- java设计模式之简单工厂模式
- java与模式--简单工厂 simple factory
- java设计模式之简单工厂模式
- 胡博君解Java中简单工厂模式
- Java--策略模式和简单工厂模式
- JAVA设计模式——简单工厂(Simple Factory)模式
- Java设计模式——简单工厂(Simple Factory)
- java设计模式-创建模式之 简单工厂,工厂方法和抽象工厂的区别总结