Java设计模式之工厂方法(01)

1,工厂方法:

使用一个工厂的方法来创建产品。

 

1 package WHP;
2 //产品依赖于抽象
3 public interface IRunable {
4     public void Run();
5 }
1 package WHP;
2 //具体实现
3 public class Car implements IRunable {
4     public void Run(){
5         System.out.println("Car running.");
6     }
7 }
1 package WHP;
2 
3 public class Bus implements IRunable {
4     public void Run() {
5         System.out.println("Bus running.");
6     }
7 }
 1 package WHP;
 2 //生产产品的工厂
 3 public class AutoFactory {
 4     public IRunable CreateAuto(String auto) throws Exception {
 5         if (auto == "Car") {
 6             return new Car();
 7         } else if (auto == "Bus") {
 8             return new Bus();
 9         } else {
10 
11             throw new Exception("Incorrect auto type");
12         }
13     }
14 }
package WHP;

import java.util.*;
import java.io.*;
//使用模式的代码。
public class JTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        try
        {
        AutoFactory fac=new AutoFactory();
        IRunable a=fac.CreateAuto("Car");
        IRunable b=fac.CreateAuto("Bus");
        
        a.Run();
        b.Run();
        }
        catch(Exception ex)
        {
            System.out.println(ex.getMessage());
        }
    }
}

 工厂方法有其他改进方式:

改进1:将传入字符串的生产方法,改进为为每种产品写一个方法,返回对应的产品。这样就不会因为传入字符串不正确而出错。

改进2:将工厂方法设置为静态,不用每次创建工厂了。

posted on 2014-07-07 19:23  Henry_Wang  阅读(230)  评论(0编辑  收藏  举报

导航