首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码样式:shop.AddProduct(产品)还是shop.Products.Add(产品)?

代码样式:shop.AddProduct(产品)还是shop.Products.Add(产品)?
EN

Stack Overflow用户
提问于 2013-03-25 23:28:20
回答 1查看 189关注 0票数 2

这是一个我已经问了自己很长时间的问题,所以我决定在这里问你们。

让我们假设我有一个Shop-object,它包含一个ProductList-object作为实例变量。当然,我的Shop-object的核心功能是添加Product

向商店添加产品的公共界面应该是什么样子的?

shop.AddProduct(product)

shop.Products.Add(product)

谢谢你的想法和帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-25 23:39:06

这实际上是一个关于是否将产品公开为属性或是否使用方法的问题。关于这一点,已经有很多问题了。例如:

Properties vs Methods

在大多数情况下,当属性不是容器对象的功能部分时,我个人更喜欢它们。我的意思是,产品不是商店不可分割的一部分。即使没有产品,商店仍然是一家商店。

产品只是生活在商店里的物品。因此,作为集合属性,它们是非常有意义的。虽然我可能有一个库存财产,其中的产品是一个财产的库存。

无论如何,方法在做某事时往往更有意义。不是简单地包含什么东西。例如,store.PurchaseProduct(product)将从产品集合中删除项目,但它也会做一些事情(向收银台增加资金,进行库存管理等)。

使用方法的另一个原因是在操作集合时需要做几件事。例如,假设您不希望从产品中移除对象,同时也不确保货币进入收银台,或记录损坏情况。然后,我仍然会使用属性,但我会将该属性设置为私有属性,并且只通过执行操作的方法访问该属性。

然而,这在很大程度上是一个哲学上的论点。无论哪种方式,人们都会有自己的看法。重要的是你自己的意见。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15626725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档