代码改变世界

工厂模式

2018-01-08 12:35  沉迷编码  阅读(100)  评论(0)    收藏  举报

1.工厂模式

工厂模式属于常用的设计模式之一,它属于创建型模式,定义了一个创建对象的接口,有子类来继承接口实现工厂类所提供的具体特征。

优点

1.创建新产品的时候,只需要实现具体的工厂类

2.一个调用者创建对象,只需要知道具体的名称即可

3.调用者只用实现接口就行,不能查看产品的具体实现

缺点

1.每创建一个产品,就必须要创建一个子类,如果产品过多,就会导致类的剧增,从而增加整个系统的复杂度

具体实现

          结构图

步骤一:

  创建一个汽车接口Car

1 package com.hzyc.text;
2 
3 public interface Car {
4     //车的颜色,默认是public abstract。
5     void carColor();
6 }

 

步骤二:

创建一个子类来实现car类

1 package com.hzyc.text;
2 
3 public class RedCar implements Car {
4 
5     public void carColor() {
6         System.out.println("红色车");
7     }
8 
9 }

步骤三:

生成一个工厂类CarFactory

 1 package com.hzyc.text;
 2 
 3 public class CarFactory {
 4     
 5     public Car getCar(String carType){
 6         if(carType == null){
 7             return null;
 8         }
 9         else if(carType.equalsIgnoreCase("red")){
10             return new RedCar();
11         }
12         return null;
13     }
14 }

步骤四:

创建一个demo来检查

1 package com.hzyc.text;
2 
3 public class CarDemo {
4     public static void main(String[] args) {
5         CarFactory carFactory = new CarFactory();
6         Car redCar1 = carFactory.getCar("red");
7         redCar1.carColor();
8     }
9 }

显示:

总结:本实例中,通过建造汽车的工厂类,使在创建对象的时候只需要调用工厂类就ok。