美文网首页
工厂方法和抽象工厂的联系与区别

工厂方法和抽象工厂的联系与区别

作者: 卢纪超 | 来源:发表于2020-06-08 10:16 被阅读0次

    一.抽象工厂和工厂方法的概念

    抽象工厂:提供一个接口,用来创建相关或依赖对象的家族,而不需要明确指定具体类

    工厂方法:定义了一个创建对象的接口,单由自雷决定要实例化的类是拿一个.工厂方法让类把实例化推迟到了子类

    二.抽象工厂和工厂方法的联系

    抽象工厂的每个方法实际上看起来都像是工厂方法.每个方法都被声明成抽象,而子类的方法覆盖这些方法来创建某些对象.

    抽象工厂的方法经常以工厂方法的方式实现.抽象工厂的任务是定义一个负责创建一组产品的接口.这个接口内的每个方法都负责创建一个具体的产品,同时利用实现抽象工厂的子类来提供具体的做法.

    所以在抽象工厂中利用工厂方法实现生产方法是相当自然的做法.

    三.抽象工厂和工厂方法的区别

    1.创建对象的方法不同

    工厂方法:是通过继承的方式创建对象.这就意味着,利用工厂方法创建对象,需要扩展一个类,并覆盖它的工厂方法.通过子类创建,只需要知道它们所使用的抽象类型,由子类负责决定具体类型.换句话说,工厂方法只负责从具体类型中解耦.

    抽象工厂:是通过对象的组合.提供一个用来创建一个产品家族的抽象类型,这个类型的子类定义了产品的方法.要想使用这个工厂,必须先实例化它,然后将它传入到一些针对抽象类型缩写的代码中.

    2.功能

    工厂方法:把客户代码从需要实例化的具体类中解耦.或者目前还不知道将来需要实例化那些具体类时,也可以用它.使用时只需要将工厂方法继承给子类,并实现它的工厂方法.

    抽象工厂:需要创建产品家族和让制造的相关产品家族集合起来时,您可以使用它.

    四.抽象方法和方法工厂举例:

    1.工厂方法

    工厂方法

    2.抽象工厂

    抽象工厂

    相关文章

      网友评论

          本文标题:工厂方法和抽象工厂的联系与区别

          本文链接:https://www.haomeiwen.com/subject/tyynzhtx.html