您的位置:首页 > 编程语言 > Java开发

JAVA与模式(一)-----简单工厂模式

2008-03-31 23:10 302 查看
简单工厂模式 举例:

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

上面分别展示了简单工厂模式中的三种不同角色:

抽象产品角色工厂角色具体产品角色

抽象产品角色可以为接口或抽象类.抽象产品角色 可与 工厂角色合并;抽象产品角色工厂角色具体产品角色也可合并.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: