继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

工厂方法模式的概述和使用学习笔记

慕仔4209126
关注TA
已关注
手记 304
粉丝 69
获赞 305

A:工厂方法模式概述

  • 工厂方法模式中抽象工厂类负责定义创建对象的接口,具体对象的创建工作由继承抽象工厂的具体类实现。

    • B:优点

  • 客户端不需要在负责对象的创建,从而明确了各个类的职责,如果有新的对象增加,只需要增加一个具体的类和具体的工厂类即可,不影响已有的代码,后期维护容易,增强了系统的扩展性

    • C:缺点

  • 需要额外的编写代码,增加了工作量

    • D:案例演示

    • 动物抽象类:public abstract Animal { public abstract void eat(); }
      工厂接口:public interface Factory {public abstract Animal createAnimal();}
      具体狗类:public class Dog extends Animal {}
      具体猫类:public class Cat extends Animal {}
      开始,在测试类中每个具体的内容自己创建对象,但是,创建对象的工作如果比较麻烦,就需要有人专门做这个事情,所以就知道了一个专门的类来创建对象。发现每次修改代码太麻烦,用工厂方法改进,针对每一个具体的实现提供一个具体工厂。
      狗工厂:public class DogFactory implements Factory {
      public Animal createAnimal() {…}
      }
      猫工厂:public class CatFactory implements Factory {
      public Animal createAnimal() {…}
      }

代码:

//抽象接口    public abstract class Animal {        public abstract void eat();    }//工厂接口public interface Factory {    public Animal createAnimal();}//具体工厂类public class Dog extends Animal {    @Override    public void eat() {        System.out.println("狗吃");    }}//实现工厂接口public class CatFactory implements Factory {    @Override    public Animal createAnimal() {        return new Cat();    }}//测试public class Test {    /**     * @param args     */    public static void main(String[] args) {        DogFactory df = new DogFactory();        Dog d = (Dog) df.createAnimal();        d.eat();    }}

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP