美文网首页
19暑期学习-Day10

19暑期学习-Day10

作者: iqxtreme | 来源:发表于2019-07-12 16:12 被阅读0次

    内容概要

    • 了解设计模式
    • 学习抽象工厂模式(AbstractFactory)

    1 引入设计模式

    • 快速阅读第1章
    • 了解什么是设计模式
    • 设计模式的用途
    • 什么是接口:对象操作所定义的所有操作型构的集合被称为该对象的接口(interface)。
    • 什么是多态:实现相同接口的不同类,他们的实例虽然行为不同,但对于使用者(客户)而言,确是可以相互替换的,使用者仅把它们看做具有相同接口的同一类事物。
    • 接口和多态是设计模式的实现基础。
    • 什么是类(class),什么是类型(type)。对应到代码中,类就是用class定义的,类型由interface定义。

    2 案例研究

    • 快速阅读第2章
    • 简单了解各个模式出现的情景
    • 今后需要经常回读此章节,慢慢深入了解各种模式的应用

    3 创建型模式

    • 类创建型模式,使用继承
    • 对象创建型模式,依靠委托
    • 2个主旋律:
      1 隐藏系统中要使用的具体类
      2 隐藏了实例的创建和组装
    • 系统唯一知道的信息是抽象类定义的接口。
    • 在以下方面有很大灵活性(即3WH):
      1 创建什么(What)
      2 谁来创建(Who)
      3 如何创建(How)
      4 何时创建(When)
    • 可使用差别很大的对象在静态动态时配置同一系统。

    3.1 了解迷宫案例基础

    迷宫构件结构
    • 根据书中说明了解上图中的结构及关系。
    • 了解MazeGame::CreateMaze()在实现上的不灵活之处(即硬编码)。
    • 了解4种创建型模式要如何优化迷宫的创建,并在详细学习每一种模式时,回来深刻理解这里所描述的情形。

    3.2 抽象工厂(AbstractFactory)

    带着以下问题去阅读:

    • 抽象工厂模式由工厂产品两个基本概念构成。
    • 客户是谁
    • 应用于一个产品系列,而不是针对任何一个单一的产品。

    3.2.1 抽象工厂结构图

    抽象工厂

    3.2.2 对比硬编码和抽象工厂模式

    硬编码的创建过程 采用抽象工厂的创建过程

    3.2.3 缺点

    • 需要为每个系列的产品搭配一个具体的工厂,即便某两个系列产品的差异很小。
    • 难以支持新种类的产品,扩展抽象工厂不容易。可以通过传入表示产品类型的参数来创建对应的产品实例,但并不一定安全。

    3.2.4 配套代码

    见unity工程。

    3.2.5 应用场景举例

    待补充

    3.2.6 其它

    • 如何搭配工厂方法(FactoryMethod)解决产品的创建问题。

    设计模式学习顺序

    • 单例模式
    • 状态模式

    runoob网站设计模式教程(https://www.runoob.com/design-pattern/design-pattern-tutorial.html

    相关文章

      网友评论

          本文标题:19暑期学习-Day10

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