From d371b89e3b441d38eaec56e6911e298efa7dff3b Mon Sep 17 00:00:00 2001 From: YuWeixia Date: Sat, 28 Mar 2026 13:08:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20'w4/=E5=8F=8D=E6=80=9D?= =?UTF-8?q?=E4=B8=8E=E7=BB=A7=E6=89=BF=E7=BB=84=E5=90=88=E7=9A=84=E8=AE=A8?= =?UTF-8?q?=E8=AE=BA'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- w4/反思与继承组合的讨论 | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 w4/反思与继承组合的讨论 diff --git a/w4/反思与继承组合的讨论 b/w4/反思与继承组合的讨论 new file mode 100644 index 0000000..9c45bad --- /dev/null +++ b/w4/反思与继承组合的讨论 @@ -0,0 +1,30 @@ +继承 +优点:代码复用、多态支持、符合“is-a”关系。 + +缺点:紧耦合、灵活性受限、可能破坏封装。 + +组合 +优点:松耦合、动态替换行为、易于测试。 + +缺点:代码量增多、不易直观体现类型层次。 + +在本场景中的选择 +本实验采用继承,因为: + +所有图形共享“计算面积”这一核心行为,且未来扩展新图形只需继承 Shape,无需修改已有代码。 + +继承方案简洁直观,充分利用了多态,便于统一处理。 + +若未来行为变化频繁(如面积算法需动态切换),则可重构为组合模式。当前场景下继承更合适。 + + +实验反思与总结 +多态的价值:通过 ShapeUtil.printArea(Shape shape) 一行代码即可处理所有图形,避免了重复代码,提高了可维护性。 + +抽象类的合理使用:将公共行为提升到抽象类,子类只关注自身实现,符合单一职责原则。 + +设计取舍:在简单场景中继承的简洁性优于组合,但需警惕未来耦合;若需求复杂化,应及时重构。 + +AI 工具助力:Trae 的 AI 辅助功能显著提升了开发效率,尤其在代码生成、文档撰写和理论分析方面,但核心设计仍需人工判断。 + +通过本次实验,加深了对面向对象三大特性(封装、继承、多态)的理解,并初步掌握了利用 AI 工具辅助编程的方法。 \ No newline at end of file