JAVA与模式(一)-----简单工厂模式
http://www.diybl.com/ 2008-4-1 网络 点击:
[ 评论 ]
文章搜索:
【点击打包该文章】
package com.migo2008.factory;


public interface Computer ...{
//显示器
void display();
//主机
void hostComputer();
//键盘
void keyboard();
//鼠标
void mouse();
//打印信息
void output(String msg);
}
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);
}
}
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);
}
}
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;
}
}
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上面分别展示了简单工厂模式中的三种不同角色:
抽象产品角色,工厂角色与具体产品角色
抽象产品角色可以为接口或抽象类.抽象产品角色 可与 工厂角色合并;抽象产品角色,工厂角色与具体产品角色也可合并.
如果图片或页面不能正常显示请点击这里 站内搜索:
推荐文章 |
