我正在和几个同事一起在一个网站上工作,我们在如何看待类架构方面存在一些差异,所以我也发布了这个,看看更大的社区对这个问题的看法,因为我想很多人都在类似的情况。
我们正在使用 MVC 方法,模型通过活动记录模式实现。其中一个模型是与我们数据库中的产品表相关的“产品”模型。问题是,我们有两种主要类型的产品——有形的(type = 1)和无形的(type = 2)。在整个代码中,我们将有大量与此类产品相关的逻辑。(如果有形就这样做,如果非有形就这样做……)
所以一种方法是 - 创建类 TangibleProduct 和 NonTangibleProduct 并通过工厂获取其中一个。当然,这些类将具有重复的方法,即 isTangible() 或 isNonTangible() 将存在于两个类中,但在一种情况下会返回 true,而在另一种情况下会返回 false。(这只是一个例子)。我希望在类中看到至少大约 30 种不同的方法,它们将根据产品类型返回不同的值。
另一种方法是只有一个 Product 类,并在每个方法中实现 IF 块,如果产品是有形的或无形的,则执行逻辑并返回结果。
我知道这是一个模糊的问题,但我确实认为大多数在 OO 环境中工作的人在某些时候都有类似的情况......
您是否看到选择一种方法而不是另一种方法的任何长期后果,您认为哪种方法比另一种更好或更差?
编辑:对不起,我可能不太清楚。这两个类将扩展 Product 类。(即“class TangibleProduct extends Product”和“class NonTangibleProduct extends Product”)
谢谢