简单工厂模式
概念:
简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。
package com.senchen365.design.factory;
/**
* 类名:AbstractCar<br>
* 作者:java菜鸟<br>
* 功能:简单工厂模式是实现<br>
* 时间:22:49<br>
* 版本:1.0.0<br>
*/
//抽象的车父类
public interface AbstractCar {
void NewCar();
}
//实现抽象车父类的redcar
class RedCar implements AbstractCar {
@Override
public void NewCar() {
System.out.println("生产了一辆红色小汽车");
}
}
//实现抽象车父类的greencar
class GreenCar implements AbstractCar {
@Override
public void NewCar() {
System.out.println("生产了一辆绿色小汽车");
}
}
//实现抽象车父类的bluecar
class BlueCar implements AbstractCar {
@Override
public void NewCar() {
System.out.println("生产了一辆蓝色小汽车");
}
}
class MyFactory{
private static final int x=0;
private static final int y=1;
private static final int z=2;
public void getCar(int flag){
switch (flag){
case x:
new RedCar().NewCar();
break;
case y:
new RedCar().NewCar();
break;
case z:
new RedCar().NewCar();
break;
default:
System.out.println("工厂还不能生产这种颜色的小汽车");
}
}
}
//具体的客户类
class client{
public static void main(String[] args){
new MyFactory().getCar(1);
}
}
简单工厂模式是对于客户端的一种解放,实现分工明确各自完成分内工作的一种方式;
但是由于工厂要做更多的事情所以一旦,要添加新的汽车颜色类,工厂会越来越复杂(会违背高内聚低耦合原则),维护起来不方便,而且还要再创建新的汽车色彩类不方便