**瑱 2023-03-19 15:33 采纳率: 55%
浏览 14

面向对象编程——树的应用

背景:
一棵通用树,从节点到分支节点(树高度不定、树的度不定、每个节点的度不定、结点层次不定)

  1. 每个节点都有自己的状态,每个节点都有不一样的功能及相应参数;
  2. 任意一个节点发生状态改变,都会影响其它节点(根据节点的功能判断是否影响到父节点和子节点,每一个节点都会受影响);
  3. 父类节点会因为时间参数不同,状态改变也会有先后;其余子节点会因为父节点改变直接受影响;
    问题:
    我想通过面向对象去编程,实现发生异常后,记录被影响到的其它节点的及状态?
    我已实现过部分:
    定义节点为父类:Terminal(节点类)
    其子类为:TerminalState(状态类)、TerminalState(功能类)、TerminalDispose(配置类)
    过程:
    我通过当前节点去找父节点是否影响,再通过相应节点去找父亲节点,至到最后一个被影响的父亲节点,再通过父亲节点去找子节点,并记录这些节点

我现在想对这个实现过程通过面向对象封装成高质量的代码,还需要做哪些相应的封装?
我是否能够直接通过根节点去找子节点被影响的,不想通过节点找父节点再找子节点?

  • 写回答

1条回答 默认 最新

  • 追cium 2023-03-19 15:50
    关注

    参考GPT和自己的思路:

    首先,你已经实现了一部分的代码,是很不错的。接下来,你可以考虑以下几个方面的封装:

    1. 影响节点的记录应该作为一个单独的类来实现,这个类可以包含被影响的节点、节点的状态和时间等信息;
    2. 节点的状态和功能可以作为属性来封装起来,并且可以针对不同的节点进行不同的定义;
    3. 在判断节点是否受到影响时,可以用递归的方式向上遍历节点的父节点,向下遍历节点的子节点;
    4. 你可以考虑通过根节点遍历子节点的方式来寻找受影响的节点,但是在这种方式下,你需要考虑受影响节点的顺序问题。

    最后,我建议你不要着急追求封装和高质量的代码,应该先把功能实现出来,再不断地优化和重构。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月19日

悬赏问题

  • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题