这个问题我已经问自己很长时间了,所以我决定在这里问你们。
假设我有一个 Shop
对象,其中包含一个 ProductList
对象作为实例变量。我的 Shop
对象的核心功能当然是添加产品
的能力。
向商店添加产品的公共(public)界面应该是什么样子?
shop.AddProduct(产品)
或
shop.Products.Add(产品)
?
感谢您的想法和帮助。
最佳答案
这实际上是一个关于是否将 Products 公开为属性,或者是否使用方法的问题。关于这一点,SO 上已经有很多问题了。例如:
在大多数情况下,当属性不是容器对象的功能部分时,我个人更喜欢它们。我的意思是,产品并不是商店不可或缺的一部分。商店仍然是商店,即使它没有产品。
产品只是商店内的元素。因此,它们作为收藏品非常有意义。尽管我可能有一个 Inventory 属性,其中 Products 是库存的属性。
无论如何,方法在做某事时往往更有意义。不仅仅是包含某些东西。例如,store.PurchaseProduct(product) 会从产品集合中删除商品,但它也会执行某些操作(向收银台添加资金、进行库存管理等)。
使用方法的另一个原因是当您操作集合时需要执行多项操作时。例如,假设您不希望在不确保钱进入收银台或记录破损情况的情况下从产品中移除元素。然后,我仍然会使用一个属性,但我会将该属性设为私有(private),并且仅通过执行操作的方法访问它。
然而,这在很大程度上是一个哲学论证。无论哪种方式,人们都会有意见。重要的是你自己的看法。
关于c# - 代码样式 : shop. AddProduct(产品) 或 shop.Products.Add(产品)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15626725/