代码设计及重构

发布时间 2023-06-10 17:39:13作者: yang131

 案例一  NPC和自身对话选项面板的设计:

 NPC A 和NPC OptionsWidget的交互需要传递 TaskInfo(TaskID,TaskUnitIndex,isMainTask)。Widget显示的时候需要自己提取string,处理的时候自身的处理,但是考虑到设计上的单一职责,

NPC A对NPC Options负责 options的处理,所以有如下改进: 

NPC OptionsWidget 与NPC A 的交互 只需要 Options String,而不是TaskInfo,完成了模块低耦合,
NPC A对外提供对应的Options String,别人提供索引Index即可自身完成对对话的处理。

 

案例二, 在当前有主线直线任务数据表的时候,如何处理NPC常用对话或者固定对话? 主要是配置问题 

      目前采用方案:   固定项,在代码中直接写死固定处理