03抽象工厂设计模式(代码片段)

shimeath shimeath     2022-11-28     249

关键词:

抽象工厂

建立一个最高层级的工厂,用来生产不同产品的工厂,然后再建立一个产品规范,用来规定生产的产品需要有什么样的功能。

这样做的好处就是不需要关心创建的细节,并将一个系列的产品一起创建

技术图片

产品的规范:

/*电脑产品*/
public interface ComputerProduct 
    public void playGame();
    public void coding();
    public void watchMovie();


/*鼠标产品*/
public interface MouseProduct 
    public void leftClick();
    public void rightClick();
    public void doubleClick();
    public void move();

产品的工厂:

public interface ProductFactory 
    public MouseProduct getMouse();
    public ComputerProduct getComputer();

戴尔的产品:

/*戴尔的电脑*/
public class DellComputer implements ComputerProduct
    @Override
    public void playGame() 
        System.out.println("用戴尔电脑打游戏");
    

    @Override
    public void coding() 
        System.out.println("用戴尔电脑写代码");
    

    @Override
    public void watchMovie() 
        System.out.println("用戴尔电脑看电影");
    


/*戴尔的鼠标*/
public class DellMouse implements MouseProduct
    @Override
    public void leftClick() 
        System.out.println("左键单击戴尔鼠标");
    

    @Override
    public void rightClick() 
        System.out.println("右键单击戴尔鼠标");
    

    @Override
    public void doubleClick() 
        System.out.println("双击戴尔鼠标");
    

    @Override
    public void move() 
        System.out.println("移动戴尔鼠标");
    

戴尔的产品工厂:

public class DellFactory implements ProductFactory 
    @Override
    public MouseProduct getMouse() 
        return new DellMouse();
    

    @Override
    public ComputerProduct getComputer() 
        return new DellComputer();
    

联想的产品:

/*联想的电脑*/
public class LenovoComputer implements ComputerProduct
    @Override
    public void playGame() 
        System.out.println("用联想电脑打游戏");
    

    @Override
    public void coding() 
        System.out.println("用联想电脑写代码");
    

    @Override
    public void watchMovie() 
        System.out.println("用联想电脑看电影");
    


/*联想的鼠标*/
public class LenovoMouse implements MouseProduct
    @Override
    public void leftClick() 
        System.out.println("左键单击联想鼠标");
    

    @Override
    public void rightClick() 
        System.out.println("右键单击联想鼠标");
    

    @Override
    public void doubleClick() 
        System.out.println("双击联想鼠标");
    

    @Override
    public void move() 
        System.out.println("移动联想鼠标");
    

联想的产品工厂:

public class LenovoFactory implements ProductFactory 
    @Override
    public MouseProduct getMouse() 
        return new LenovoMouse();
    

    @Override
    public ComputerProduct getComputer() 
        return new LenovoComputer();
    

抽象工厂模式主要还是看代码理解

工厂模式-抽象工厂(代码片段)

1、抽象工厂模式1.1、什么是抽象工厂模式抽象工厂模式是对象的创建模式,是工厂模式的进一步推广。抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。“抽象工厂”就是抽象产品角色的工厂。抽象工... 查看详情

抽象工厂模式(代码片段)

抽象工厂模式什么是抽象工厂模式抽象工厂简单地说是工厂的工厂,抽象工厂可以创建具体工厂,由具体工厂来产生具体产品。    抽象工厂,工厂的工厂。  与工厂方法的区别是一组。 具体细分到某个... 查看详情

抽象工厂模式(代码片段)

一、模式名抽象工厂,AbstractFactory二、解决的问题抽象工厂由“抽象”和"工厂"两个词组成,前者代表了使用了抽象类,后者代表了实现了工厂组装零件的模式。都知道,工厂完成零部件的生产后,再组装成对应的产品,抽象工... 查看详情

设计模式之抽象工厂模式(代码片段)

抽象工厂模式基本介绍1)抽象工厂模式:定义了一个interface用于创建相关或有依赖关系的对象簇,而无需指明具体的类2)抽象工厂模式可以将简单工厂模式和工厂方法模式进行整合。3)从设计层面看,抽象工厂模式就是对简单工厂... 查看详情

设计模式抽象工厂模式(代码片段)

抽象工厂模式优化抽象工厂异步工厂在学习抽象工厂模式前,先来回顾一下前面的简单工厂和工厂方法模式。简单工厂的职责非常简单:构造某个实体类型,然后把实例作为抽象类型返回;工厂方法模式则进一步抽象出一个抽象... 查看详情

抽象工厂模式(代码片段)

1、概述抽象工厂模式是一种创建型模式,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能... 查看详情

设计模式——抽象工厂模式(代码片段)

设计模式(七)——抽象工厂模式在设计模式(五)——工厂方法模式和设计模式(六)——JDK中的那些工厂方法中介绍了工厂方法模式。本文将介绍另外一种工厂模式——抽象工厂模式。工厂模式的简单回顾在介绍了简单工厂... 查看详情

抽象工厂模式(代码片段)

  抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的。抽象工厂模式可以向客户端提供一个接口,使其客户端在不必指定产品的具体类型情况下,能够创建多个产品族的产品对象。  工厂方法模式针对的是一个... 查看详情

抽象工厂模式(代码片段)

...他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能... 查看详情

抽象工厂模式(代码片段)

...他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能... 查看详情

设计模式-简单工厂工厂方法模式抽象工厂模式详解(代码片段)

工厂方法模式概要一个抽象产品类多个具体产品类一个抽象工厂多个具体工厂-每一个具体产品对应一个具体工厂符合-OCP开放封闭原则优点降低了代码耦合度,对象的生成交给子类去完成实现了开放封闭原则-每次添加子产品不需... 查看详情

设计模式-抽象工厂模式(代码片段)

抽象工厂模式相对于简单工厂模式,会复杂一些,但是扩展性变得更加好;一、实现抽象工厂一共分一下几个步骤:创建产品接口创建产品抽象类创建产品具体实现类创建工厂接口创建抽象工厂创建具体工厂实现类创造者调用创... 查看详情

设计模式之抽象工厂模式(创建型)(代码片段)

模式定义抽象工厂模式(AbstractFactoryPattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。模式角色抽象工厂模式包含如下角色:AbstractFactory:抽... 查看详情

设计模式之抽象工厂模式(代码片段)

1.什么是抽象工厂模式抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的。抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象。 2.具体... 查看详情

设计模式-抽象工厂模式(代码片段)

在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或者一组重载的工厂方法。我们可以想一下,有时候我们需要一个工... 查看详情

设计模式之抽象工厂模式(代码片段)

设计模式之抽象工厂模式  抽象工厂模式定义:Provideaninterfaceforcreatingfamiliesofrelatedordependentobjectswithoutspecifyingtheirconcreteclasses.(为创建一组相关或相互依赖的对象提供一个接口,而且无需指定它们的具体类型)  抽象工厂... 查看详情

设计模式-抽象工厂模式(代码片段)

抽象工厂模式是向客户端提供一个接口(FruitFactory),使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族(NorthFruit、SouthFruit)的产品对象。角色和职责:1.抽象工厂(factory)-FruitFactory:  抽象工厂模式的... 查看详情

设计模式——工厂方法模式(代码片段)

1.抽象工厂定义为创建一组相关或相互依赖的对象提供接口,无需找出具体类。抽象工厂模式与工厂方法模式的区别抽象工厂是工厂方法模式的升级,用它来创建一组相关或相互依赖的对象,他与工厂方法模式的区别就在于,工... 查看详情