1. 概述

简单工厂模式是类的创建模式,又叫做静态工厂方法模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。

2. 解决问题

  当在一个系统中,我们要频繁的调用不同的实体类,使用它们的一个方法时,我们可以采用简单工厂模式来做,客户端不需要知道怎么创建产品,直接交给工厂来完成。

3. 

  1.工厂类:用于创建具体产品的工厂

  2.抽象产品类:声明共同方法的抽象类或接口

  3.具体产品:实现抽象产品中的方法。

4. 结构图

       

5.结构中代码

  

      我们用女娲造人的列子来写。

  

    首先,女娲相当于一个工厂,用于创造各种各样的人,黄种人,白种人,黑种人等,所有的人都有相同的方法。女娲在造人的时候是要依赖人这个模型的。

    1.抽象产品类----》人

 

public interface Person {
    
    public void eat();
    
    public void sleep();
    
    public void walk();

}

  

  2.具体产品类:

 

public class YelloPerson implements Person {

    public void eat() {

    }

    public void sleep() {
        System.out.println("黄种人正在睡觉");
    }

    public void walk() {

    }

}

 

public class WhitePerson implements Person {

    public void eat() {

    }

    public void sleep() {
        System.out.println("白种人正在睡觉");
    }

    public void walk() {

    }

}
public class BlackPerson implements Person {

    public void eat() {

    }

    public void sleep() {
        System.out.println("黑种人正在睡觉");
    }

    public void walk() {

    }

}

  工厂类----》女娲

  

public class NvWa {
    
    public static Person CreatePerson(String type){
        Person person = null;
        switch (type) {
        case "黄色":
            person = new YelloPerson();
            break;
        case "黑色":
            person = new BlackPerson();
            break;
        case "白色":
            person = new WhitePerson();
            break;
        default:
            break;
        }
        return person;
    }

}

客户端:

public class Client {
    
    public static void main(String [] args){
        
        String type = "黄色";
        Person person = NvWa.CreatePerson(type);
        person.sleep();
        
        
    }

}


6.总结

  1优点:相对而言降低类程序耦合度,提高程序维护和扩展性。

  2缺点:工厂还是依赖抽象产品,没有实现真正的解耦。

 

 

 

  

 

posted on 2014-11-02 15:43  javaliwei  阅读(95)  评论(0)    收藏  举报