b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

工厂模式-抽象工厂模式

电脑杂谈  发布时间:2020-04-17 19:04:11  来源:网络整理

联想平板工厂模式_联想工厂模式_联想手机进入工厂模式

设计模式

抽象工厂模式可以说是工厂方法模式的升级版本. 当要创建的产品具有多个产品线(产品系列)时,最好使用抽象工厂模式.

我们一直生产联想和惠普生产的计算机联想平板工厂模式,但是计算机也具有多种产品线: 台式机,笔记本电脑和平板电脑. 联想和惠普都在这些不同的产品线上生产计算机. 无法满足需求,本文我们使用抽象工厂模式来解决此问题.

提供一个用于创建一组相关或相互依赖的对象的接口,而无需指定它们的特定类.

9bc91a45209d06698bf8dc97375d5396.png

联想手机进入工厂模式_联想平板工厂模式_联想工厂模式

抽象工厂模式中的以下角色:

联想和惠普生产的计算机分为两条产品线,一台台式机和一台笔记本电脑. 为了解决增加产品线的问题,我们使用抽象工厂模式来实现.

首先定义抽象产品类别:

public abstract class DesktopComputer {
  public abstract void start();
}
public abstract class NotebookComputer {
   public abstract void start();
}

两个抽象产品类是DesktopComputer和NotebookComputer,它们用于定义两个产品线: Desktop和Notebook. 它们都定义了一种启动计算机的启动方法.

特定产品是Lenovo和HP台式机和笔记本电脑,如下所示.

联想平板工厂模式_联想工厂模式_联想手机进入工厂模式

public class LenovoDesktopComputer extends DesktopComputer {
    @Override
    public void start() {
        System.out.println("联想台式电脑启动");
    }
}
public class HpDesktopComputer extends DesktopComputer {
    @Override
    public void start() {
        System.out.println("惠普台式电脑启动");
    }
}
public class LenovoNotebookComputer extends NotebookComputer {
    @Override
    public void start() {
        System.out.println("联想笔记本电脑启动");
    }
}
public class HpNotebookComputer extends NotebookComputer {
    @Override
    public void start() {
        System.out.println("惠普笔记本电脑启动");
    }
}

接下来,创建一个用于生产计算机的抽象工厂,如下所示,

public abstract class ComputerFactory {
    public abstract DesktopComputer createDesktopComputer();
    public abstract NotebookComputer createNotebookComputer();
}

定义了两种方法,分别用于生产台式计算机和笔记本计算机.

定义联想和惠普工厂:

public class LenovoFactory extends ComputerFactory {
    @Override
    public DesktopComputer createDesktopComputer() {
        return new LenovoDesktopComputer();
    }
    @Override
    public NotebookComputer createNotebookComputer() {
        return new LenovoNotebookComputer();
    }
}
public class HpFactory extends ComputerFactory {
    @Override
    public DesktopComputer createDesktopComputer() {
        return new HpDesktopComputer();
    }
    @Override
    public NotebookComputer createNotebookComputer() {
        return new HpNotebookComputer();
    }
}

联想工厂模式_联想手机进入工厂模式_联想平板工厂模式

联想工厂和惠普工厂用于生产具有两种不同产品线(台式机和笔记本电脑)的计算机.

public class Client {
    public static void main(String[]args) {
        ComputerFactory lenocoFactory=new LenovoFactory();
        lenocoFactory.createDesktopComputer().start();
        lenocoFactory.createNotebookComputer().start();
        ComputerFactory hpFactory=new HpFactory();
        hpFactory.createDesktopComputer().start();
        hpFactory.createNotebookComputer().start();
    }
}

为便于理解,下面给出了此示例的UML图,如下所示.

2d40e62b7f16c9a945f7319500d50594.png

由于“打开和关闭原理”在抽象工厂模式中的倾斜,它倾斜地满足了“打开和关闭原理”,这为添加新产品系列提供了便利,但不能提供这样的功能. 添加新的产品结构. 设计的便利性,因此要求设计人员在设计之初就进行充分考虑,在设计完成后将不会在系统中添加新的产品等级结构,也不会删除现有的产品等级结构联想平板工厂模式,否则将会导致系统出现重大修改给后续维护工作带来了很多麻烦.

联想平板工厂模式_联想工厂模式_联想手机进入工厂模式

在以下情况下,您可以考虑使用抽象工厂模式:

“开放和关闭原则”的倾向

“打开和关闭原则”要求系统可以扩展,不能修改,以通过扩展来增强其功能. 对于涉及多个产品系列和多个产品层次结构的系统,增强功能包括两个方面:

出厂模式降级

设计模式(十三)抽象工厂模式

设计模式-抽象工厂模式


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shouji/article-179099-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 叶景山
        叶景山

        辛苦了

      • 丁邦效
        丁邦效

        谁叫你们囤货的活该

      • 王文涛
        王文涛

        #给烊烊520#1128生日评论集体向520万刷起来#护千玺到远方#

      热点图片
      拼命载入中...