美文网首页
3 利用组件对象模型构建灵活性

3 利用组件对象模型构建灵活性

作者: 全新的饭 | 来源:发表于2022-02-23 14:26 被阅读0次

问题引入

如何使用可重用的方式制作一个游戏对象?
如何将游戏对象从核心引擎代码中解耦?
如何让游戏对象灵活地足以应对未来游戏的变化?

关于编程的思考

编程的本质:产生一个想法后,问题是如何有逻辑且正确地把这个想法描述给计算机。
通常有2种解决该问题的方法。

  1. 容易的方法:尽可能快地解决。
    如:硬编码、复制许多同样的代码块、不考虑新写的内容对已有内容的影响。
    通常容易的方法会导致未来的工作越来越困难。因为没考虑对已有内容的影响。
  2. “正确”的方法
    考虑新内容可能会影响已有内容的地方,如何应对未来可能出现的变化(未来可能出现哪些变化,为其预留余地)。
    正确并不意味着唯一。这也是编程的乐趣所在。

编程原则:找到所有可能发生变化的地方,封装它。(把变化的和不变化的内容区分开来)

策略模式

封装行为,外部对象通过接口来控制行为。(而非直接把外部和行为绑定在一起)
在生成具体对象时,将相应的行为注入给它。在控制对象执行某行为时,实际是让该对象执行自己持有的行为控制中的相应行为。
对象只要知道自己能做什么就行,不需要知道自己要怎么做。

如动物类中有一个方法是叫,其持有一个叫的行为,该行为中有一个方法是叫。
可以在创建具体动物对象或其他时候将某种叫的行为(也是一个具体的对象)赋给该动物对象。当外部调用该动物对象的叫方法时,该叫方法内调用前述叫的行为中的叫方法。
通过这种方式,将叫的行为和动物本身解耦,使叫的行为可被复用。

装饰器模式

在需要时才动态地添加职责。
用装饰类把原类包起来,在装饰类中增加新的方法。

实际做时,需要先做一个抽象装饰类,在其中做一个指向原类对应对象的引用、定义新方法。在具体装饰类中实现新方法。
可以让该抽象装饰类继承原类对应的抽象类,该抽象装饰类中,原类中的各方法的实现:直接调用其引用的原类对应对象中的相应方法。

组件对象模型

对象是一组对象的容器。
可以向对象容器中添加或从中移除各类组件(每个组件有自己的数据和功能)。

相关文章

  • 3 利用组件对象模型构建灵活性

    问题引入 如何使用可重用的方式制作一个游戏对象?如何将游戏对象从核心引擎代码中解耦?如何让游戏对象灵活地足以应对未...

  • 2017-10-16

    面向过程,面向对象,模块化分层,面向函数,面向组件(领域模型),自动编码,机器学习 利用spring的ioc容器,...

  • 机器学习笔记-03-广义线性模型推导线性回归及逻辑回归

    本文我们讨论以下问题: 指数分布族 广义线性模型 利用广义线性模型构建线性回归 利用广义线性模型构建二分类逻辑回归...

  • UML基础知识

    UML的分类,两种: 静态模型、动态模型 静态模型1.用例图 2.类图 3.对象图 4.组件图 5...

  • 软件工程(上)

    软件开发方法 软件开发模型 开发模型说明瀑布模型迭代模型/迭代开发方法演化模型快速应用开发增量模型构建组件模型/基...

  • 产品经理的自我修养第7篇——用户研究II

    为什么要做用户研究?是为了构建人物模型打好基础。为什么构建人物模型?是为了确定产品主要的服务对象,以及确定对象的使...

  • BIM三维设计流程包括哪些内容(以及机电设计为例)

    摘要:BIM特性是以组件构建出出建筑、结构、机电的3D模型,其设计的变更可以直接替换组件,相较于传统设计作业方式有...

  • 央行数字货币研究报告(二)

    我们将主要解决的问题是: 1. 从需求角度,构建货币评估模型; 2. 利用货币评估模型,量化分析主流货币形式; 3...

  • CustomScrollView高性能滚动

    Sliver的概念 白话:基于Sliver模型是高性能的,只有出现在可视范围内的组件才够构建,界面外的组件不构建。...

  • GPT

    利用transformer的decoder构建的语言模型 介绍 经典的语言模型是利用过去的信息,对当前的词进行表征...

网友评论

      本文标题:3 利用组件对象模型构建灵活性

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