You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
1.4 KiB
30 lines
1.4 KiB
继承
|
|
优点:代码复用、多态支持、符合“is-a”关系。
|
|
|
|
缺点:紧耦合、灵活性受限、可能破坏封装。
|
|
|
|
组合
|
|
优点:松耦合、动态替换行为、易于测试。
|
|
|
|
缺点:代码量增多、不易直观体现类型层次。
|
|
|
|
在本场景中的选择
|
|
本实验采用继承,因为:
|
|
|
|
所有图形共享“计算面积”这一核心行为,且未来扩展新图形只需继承 Shape,无需修改已有代码。
|
|
|
|
继承方案简洁直观,充分利用了多态,便于统一处理。
|
|
|
|
若未来行为变化频繁(如面积算法需动态切换),则可重构为组合模式。当前场景下继承更合适。
|
|
|
|
|
|
实验反思与总结
|
|
多态的价值:通过 ShapeUtil.printArea(Shape shape) 一行代码即可处理所有图形,避免了重复代码,提高了可维护性。
|
|
|
|
抽象类的合理使用:将公共行为提升到抽象类,子类只关注自身实现,符合单一职责原则。
|
|
|
|
设计取舍:在简单场景中继承的简洁性优于组合,但需警惕未来耦合;若需求复杂化,应及时重构。
|
|
|
|
AI 工具助力:Trae 的 AI 辅助功能显著提升了开发效率,尤其在代码生成、文档撰写和理论分析方面,但核心设计仍需人工判断。
|
|
|
|
通过本次实验,加深了对面向对象三大特性(封装、继承、多态)的理解,并初步掌握了利用 AI 工具辅助编程的方法。
|