首页 > 编程语言 > 详细

java工厂模式Factory

时间:2018-01-30 14:10:38      阅读:263      评论:0      收藏:0      [点我收藏+]

 工厂模式:

1)我们首先要设计车汽车需要那些流程(face)

package light.zhang.model.model.facotry;

/**
 * 车子建造过程,定义好流程
 * @author witts
 *
 */
public interface ICarface {
    /**
     * 绘制图片
     */
    void drawImage();
    /**
     * 设计模型
     */
    void createModel();
    /**
     * 实现生产
     */
    void implCar();
    /**
     * 测试车子
     */
    void testCar(); 
}

2.汽车生产商(实现)

package light.zhang.model.model.facotry;

/**
 * 奥迪生厂商
 * @author witts
 *
 */
public class AodiCompany  implements ICarface { 
    @Override
    public void drawImage() { 
        System.out.println("奥迪公司-图片模型");
    }

    @Override
    public void createModel() { 
        System.out.println("奥迪公司-创建模型");
    }

    @Override
    public void implCar() {
        System.out.println("奥迪公司-生产车体");
    }

    @Override
    public void testCar() { 
        System.out.println("奥迪公司-测试车体");
    } 
        
}

package light.zhang.model.model.facotry;

/**
 * 宝马公司
 * @author witts
 */
public class BMWCompany implements ICarface {
    @Override
    public void drawImage() {
        System.out.println("宝马公司-图片模型");
    }

    @Override
    public void createModel() {
        System.out.println("宝马公司-创建模型");
    }

    @Override
    public void implCar() {
        System.out.println("宝马公司-生产车体");
    }

    @Override
    public void testCar() {
        System.out.println("宝马公司-测试车体");
    }
 
}

3)4S店现在要整理奥迪宝马的车,4S店就是一个工厂,他负责把奥迪宝马的汽车整理,用户去买车只需要告诉销售员我要买什么车

package light.zhang.model.model.facotry;

/**
 * 4S店开始整理要销售那些车?
 * @author witts
 *
 */
public class Car4SDianFactory {
    
    public ICarface getCar(int type) {
         if(type == 1) {
             return new AodiCompany();
         }
         if(type == 2) {
             return new BMWCompany();
         }
         return null;
    }
}

4)用户开始买车(调用)

package light.zhang.model.model.facotry;

/**
 * 用户开始去4S店买车
 * @author witts
 *
 */
public class UserShoppingCar {
    
    public static void main(String[] args) {
        Car4SDianFactory factory=new Car4SDianFactory();
        ICarface aodiCar=factory.getCar(1);//奥迪公司的汽车
        aodiCar.testCar();
        
        ICarface bmwCar =  factory.getCar(2);//宝马公司的汽车
        bmwCar.testCar();
    }
}

 

java工厂模式Factory

原文:https://www.cnblogs.com/light-zhang/p/8384302.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!