设计模式
设计模式之工厂模式
工厂方法模式定义了创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。 来解析这个定义: 1. “创建对象”这个点非常关键,表明了工厂模式的职责就是为了创建对象的,而不是干其他委托、代理什么的。同时也将创建对象这个职责从Client迁移出去了。 2. “子类决定要实例化的类是哪一个”,说明创建对象的方法被子类继承,而这个方法的返回值是目标类,并且隐含着一个更重要的点,父类中定义的这个方法的返回值一定是一个目标抽象类,而子类返回是目标具体类。 3. “实例化推迟到子类”,表明是在客户端调用时,通过选用不同的子类,来决定目标对象的具体类。 学习设计模式,一个关键的自我校验,是能够自己给自己出题,构建场景,并通过目标设计模式来解决。 💡假设我们有一个汽车制造系统,系统需要生产不同类型的汽车(如电动车、燃油车)。我们可以使用工厂方法模式来实现这个系统,使得不同类型的汽车由不同的工厂子类来创建。 // 1. 定义抽象产品类(汽车) abstract class Car { public abstract void drive(); } /