java设计模式------抽象工厂模式

2017-10-23  本文已影响0人  我弟是个程序员

这个模式,具体有啥作用,感觉作用不明显...可能是本人学艺不精吧。

目的:是为了把产品的实例化操作延迟到子类工厂中完成,通过工厂子类来决定究竟应该实例化哪一个产品具体对象。

工厂方法模式包含四个部分:

类图:

工厂模式
1.产品层
/**
 * 产品抽象层
 */
public interface Car {
    /**
     * 上班函数
     */
    void gotowork();
}

/**
 * 具体产品
 */
public class Bike implements Car {
    public void gotowork() {
        System.out.println("骑自行车去上班!");
    }
}
/**
 * 具体产品
 */
public class Bus implements Car {
    public void gotowork() {
        System.out.println("坐公交车去上班!");
    }
}
2.工厂层
/**
 * 工厂抽象
 */
public interface ICarFactory {
    /**
     * 获取交通工具
     */
    Car getCar();
}
import com.sqlb.factory.Car;
import com.sqlb.factory.ICarFactory;

/**
 * 具体工厂
 */
public class BikeFactory implements ICarFactory {
    public Car getCar() {
        return new Bike();
    }
}
import com.sqlb.factory.Car;
import com.sqlb.factory.ICarFactory;

/**
 * 具体工厂
 */
public class BusFactory implements ICarFactory {
    public Car getCar() {
        return new Bus();
    }
}
3.测试

测试代码:

    public void test() {
        ICarFactory factory = null;
        // bike
        factory = new BikeFactory();
        Car bike = factory.getCar();
        bike.gotowork();

        // bus
        factory = new BusFactory();
        Car bus = factory.getCar();
        bus.gotowork();
    }

测试结果:

测试结果
上一篇 下一篇

猜你喜欢

热点阅读