gpt4 book ai didi

java - 仅出于语义目的使用子类?

转载 作者:行者123 更新时间:2023-12-01 18:16:14 26 4
gpt4 key购买 nike

有时我看到子类的使用仅用于语义目的,我想知道这样做的优点和缺点,以及它是否应该被认为是一个好的实践。

例如:

具有语义子类

类(class)列表:

-抽象类V3(它是一个具有属性x、y和z的 vector ,以及一些操作方法)

-class Lengths 扩展了 V3(它只是扩展了 V3,不添加新的方法或属性)

-class Point 扩展 V3(仅扩展 V3)

这样,一些方法,例如 void setCuboidLengths(Lenghts l) 将仅接受 Lengths 类作为参数,而其他方法,例如 Point getCuboidCenter() 将返回一个 Point对象。

没有语义子类。

只有一类:

-V3 类

我们没有使用更具体的类,而是使用通用的 V3:void setCuboidLenghts(V3 v)V3 getCuboidCenter()

最佳答案

语义类使得更难误解函数的接口(interface),并且更难犯错误。正如 Andy Turner 所说,我会让 V3 成为 Point 和 Lenght 类的成员,而不是继承它,除非你有理由不这样做。宽度语义类的缺点是类的数量和您必须执行的显式转换可能很多,但一些制作精良的语义类可以节省数小时的头痛。

编辑: The post Jörg W Mittag 链接有一些很好的文档供您阅读此模式。请检查一下。

关于java - 仅出于语义目的使用子类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60360918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com