网站首页 新闻首页 网页设计图形动画软件编程网站开发办公软件操作系统数据库网络技术认证考试范文资料黑客攻防 书籍教程 进入论坛

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

http://www.diybl.com/ 2008-4-1  网络 点击:  [ 评论 ]
文章搜索:    【点击打包该文章】

简单工厂模式 举例:

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

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

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

抽象产品角色可以为接口或抽象类.抽象产品角色 可与 工厂角色合并;抽象产品角色工厂角色具体产品角色也可合并.

 



如果图片或页面不能正常显示请点击这里 站内搜索:   

文章评论

请您留言