• 软考76-上午题-【面向对象技术3-设计模式】-创建型设计模式01


    一、创建型设计模式一览 

    二、创建型设计模式

    2-1、创建型设计模式的概念

    一个类创建型模式使用继承改变被实例化的类;

    一个对象创建型模式将实例化委托给另一个对象。

    对应java的new一个对象。

    2-2、简单工厂模式(静态工厂方法)

    简单工厂模式属于创建型模式,但不属于23种设计模式之一

    1、定义

    定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。

    在简单工厂模式中用于被创建实例的方法通常为静态方法,因此简单工厂模式又被成为静态工厂方法。

    简单工厂模式的三类角色:

    1、工厂(核心):负责实现创建所有产品的内部逻辑,工厂类可以被外界直接调用,创建所需对象。

    2、抽象产品:工厂类所创建的所有对象的父类,封装了产品对象的公共方法,所有的具体产品为其子类对象。

    3、具体产品:简单工厂模式的创建目标,所有被创建的对象都是某个具体类的实例。它要实现抽象产品中声明的抽象方法。

    2、代码实现

    简单工厂模式的问题:

    若是要新增一个productC,则需要修改Factory类的代码。

    违反了开放封闭原则。

    开闭原则是指:

    软件应该对扩展开放,而对修改关闭。这里的意思是在增加新功能的时候,能不改代码就尽量不要改,如果只增加代码就完成了新功能,那是最好的。

    2-3、工厂方法模式

    1、意图:

    定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类

    上午题喜欢考:意图,原话。

    下午题喜欢考:代码填空。

    2、代码实现

    3、结构图(官方)

    4、适用性

    • 当一个类不知道它所必须创建的对象的类的时候;
    • 当一个类希望由它的子类来指定它所创建的对象的时候;
    • 当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。

    上午题喜欢考。

    2-4、抽象工厂模式

    1、意图

    提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。

    2、结构

    一个具体的工厂可以创建多个具体的类。

    3、代码实现

    客户端:

    4、适用性

    • 一个系统要独立于它的产品的创建、组合和表示时;
    • 个系统要由多个产品系列中的一个来配置时;
    • 当要强调一系列相关的产品对象的设计以便进行联合使用时;
    • 当提供一个产品类库,只想显示它们的接口而不是实现时。

    2-5、真题

    真题1:

    一个具体的工厂只能创建一个具体的产品:工厂方法模式;

    一个具体的工厂能创建多个具体的产品:抽象工厂方法模式;

    真题2:

  • 相关阅读:
    model.fit回调函数使用
    带你手写starter组件,搞懂SpringBoot自动配置原理
    MySQL更新一条已经存在的sql语句是怎么执行的
    计算机毕业设计springboot基于疫情背景下的新型点餐送餐系统bpe1s源码+系统+程序+lw文档+部署
    Unity技术手册-UGUI零基础详细教程-Toggle切换
    【Linux】IO操作
    POI导入带有合并单元格的excel,demo实例,直接可以运行
    大厂经典指针笔试题
    复习单片机:快速获得数字和图像对应的16进制代码软件的下载和使用
    Go学习第五章——函数与包
  • 原文地址:https://blog.csdn.net/qq_31532983/article/details/136665268