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

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

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

    问题引入

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

    关于编程的思考

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

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

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

    策略模式

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

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

    装饰器模式

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

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

    组件对象模型

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

    相关文章

      网友评论

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

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