简单工厂模式

该模式比较简单,注释比较详尽,在此不多说明,直接看代码:

/*
 * Copyright (c) 2017. Xiaomi.Co.Ltd All rights reserved
 */

package com.pt.factory.simple;

/**
 * @description 抽象汽车类
 * @author panteng
 * @date 17-2-3.
 */
public abstract class AbstractCar {
    /** 品牌 */
    protected String brand;
    /** 油耗 */
    protected float oilWear;

    /** 展示外观 */
    public abstract void showAppearance();
}
AbstractCar
/*
 * Copyright (c) 2017. Xiaomi.Co.Ltd All rights reserved
 */

package com.pt.factory.simple;

/**
 * @description 奥迪汽车实体类
 * @author panteng
 * @date 17-2-3.
 */
public class AodiCar extends AbstractCar {

    /**
     * @description 展示外观
     * @param
     * @return
     * @throws
     */
    public void showAppearance() {
        System.out.println("我是奥迪汽车");
    }
}
AodiCar
/*
 * Copyright (c) 2017. Xiaomi.Co.Ltd All rights reserved
 */

package com.pt.factory.simple;

/**
 * @description 大众汽车实体类
 * @author panteng
 * @date 17-2-3.
 */
public class DaZhongCar extends AbstractCar {
    /**
     * @description 展示外观
     * @param
     * @return
     * @throws
     */
    public void showAppearance() {
        System.out.println("我是大众汽车");
    }
}
DaZhongCar
/*
 * Copyright (c) 2017. Xiaomi.Co.Ltd All rights reserved
 */

package com.pt.factory.simple;

/**
 * @description 简单工厂模式示例代码
 *              通过定义一个类来负责创建其他类,被创建的实例通常具有共同的父类或实现了同一个接口
 *              优点:对于使用者来说,无需了解对象是如何创建的,可以更加直接方便的拿到对象,可以
 *                  方便的将一类对象统一起来,简化客户端操作
 *              缺点:工厂类出问题,所有调用工厂创建对象的客户端都会出问题;
 *                  通常来说,简单工厂模式只能用于创建某一类产品,不可以创建几类产品。
 *              JDBC就使用了简单工厂模式,将不同的数据库统一起来
 * @author panteng
 * @date 2017-02-03
 *
 * @description 简单工厂模式的实现
 * @modifier panteng
 * @date 2017-02-03
 */

public class SimpleFactoryCase {

    /**
     * 生产汽车的方法
     * @param brand 汽车品牌种类
     * @return 汽车对应实例
     */
    public AbstractCar getCar(String brand) {
        if ("Aodi".equals(brand)) {
            return new AodiCar();
        } else if ("DaZhong".equals(brand)) {
            return new DaZhongCar();
        } else {
            return null;
        }
    }
}
SimpleFactoryCase

测试类

/*
 * Copyright (c) 2017. Xiaomi.Co.Ltd All rights reserved
 */

package com.pt.factory.simple;

import org.junit.Before;
import org.junit.Test;

/**
 * @description 简单工厂模式测试类
 * @author panteng
 * @date 2017-02-03.
 */
public class SimpleFactoryCaseTest {

    @Before
    public void setUp() throws Exception {
        System.out.println("start... ...");
    }

    @Test
    public void getCarTest() {
        SimpleFactoryCase simpleFactory = new SimpleFactoryCase();
        AodiCar aodiCar = (AodiCar) simpleFactory.getCar("Aodi");
        DaZhongCar daZhongCar = (DaZhongCar) simpleFactory.getCar("DaZhong");
        aodiCar.showAppearance();
        daZhongCar.showAppearance();
    }
}
SimpleFactoryCaseTest

 

 

===========================设计模式系列文章=========================

简单工厂模式

工厂方法模式

抽象工厂模式

建造者模式

原型模式

适配器模式

桥接模式

装饰模式

代理模式

组合模式

门面模式

享元模式

责任链模式

命令模式

中介者模式

备忘录模式

观察者模式

状态模式

策略模式

模板方法模式

访问者模式

posted @ 2017-02-03 17:28  沙中世界  阅读(203)  评论(0编辑  收藏  举报