原创

用简单代码初识工厂方法设计模式

定义

通过工厂对象生成接口的具体实现对象,这样我们的代码完全与接口的实现解耦

代码

接口

public interface Cycle {
    // 骑方法
    void cycle();
}

接口实现

/**
 * 独轮车实现
 */
public class Unicycle implements Cycle {
    // 轮子数
    private int num = 1;

    @Override
    public void cycle() {
        System.out.println("Unicycle num " + num);
    }
}
/**
 * 自行车实现
 */
public class Bicycle implements Cycle {
    // 轮子数
    private int num = 2;

    @Override
    public void cycle() {
        System.out.println("Bicycle num " + num);
    }
}
/**
 * 三轮车实现
 */
public class Tricycle implements Cycle {
    // 轮子数
    private int num = 3;

    @Override
    public void cycle() {
        System.out.println("Tricycle num " + num);
    }
}

工厂接口

public interface CycleFactory {
    // 选一种自行车
    Cycle getCycle();
}

工厂接口实现

/**
 * 生产独轮车工厂
 */
public class UniCycleFactory implements CycleFactory {
    @Override
    public Cycle getCycle() {
        return new Unicycle();
    }
}
/**
 * 生产自行车工厂
 */
public class BicycleFactory implements CycleFactory {
    @Override
    public Cycle getCycle() {
        return new Bicycle();
    }
}
/**
 * 生产三轮车工厂
 */
public class TricycleFactory implements CycleFactory {
    @Override
    public Cycle getCycle() {
        return new Tricycle();
    }
}

骑车类

/**
 * @author plm
 * @create 2021/3/14 22:46
 */
public class Cycles {
    // 开始骑车
    public static void cycleCycle(CycleFactory cycleFactory) {
        Cycle cycle = cycleFactory.getCycle();
        cycle.cycle();
    }

    public static void main(String[] args) {
        cycleCycle(new UniCycleFactory()); // 骑来自独轮车工厂的车
        cycleCycle(new BicycleFactory());  //  骑来自自行车工厂的车
        cycleCycle(new TricycleFactory()); //  骑来自三轮车工厂的车
    }
}
/* 输出
Unicycle num 1
Bicycle num 2
Tricycle num 3
*/

简单的工厂方法设计模式代码,可作为初步了解设计模式;

正文到此结束
本文目录