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

  • A+
所属分类:JAVA


共计 1297 个字符,预计需要花费 4 分钟才能阅读完成。

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

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
*/

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

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: