是否有任何与拖放和鼠标手势相关的经过充分研究的设计模式?考虑一个包含具有特定布局的父子层次结构中的对象的画布。可以使用鼠标将某些对象拖放到其他对象上。此外,可以用鼠标调整对象的大小和移动。
对象上的不同热点根据用户状态(拖动、选择)表现不同。对于拖放操作,一些元素是:1) 源对象的用户视觉反馈 2) 拖动过程中用户的视觉反馈 3) 拖放区域检测 4) 跌落兼容性测试 5) 跌落动作
标准 API 倾向于将这些组合成相当单一的代码。
此外,移动和调整大小等手势具有某些共同点:1)当鼠标在调整大小/移动区域时给用户的视觉反馈2)移动/调整大小操作期间的视觉反馈3)完成/取消操作。
问题是,有没有一种方法可以简化代码,分离视觉和文档级别的职责,以及可能的大部分声明?
例如,确定鼠标下方的点是否为放置目标,可能会使用某种形式的命中测试与责任链模式相结合。
我觉得必须有良好的设计模式为这个原本混乱的问题带来纪律和组织。
干杯,