【发布时间】:2012-03-28 02:00:48
【问题描述】:
我是 C# 和 OOP 场景的新手,并且正在构建有助于我更好地理解 OOP 概念的基础架构。这是我做的一个项目,用来测试我的课堂知识。有人可以检查一下并向我解释什么是更好的方法以及为什么?
以下是我的 C# 程序中的对象:
- deskClerk [具有返回客户对象的 addCustomer 方法。]
- 订购
- 库存
- 客户
- 实用程序
- 陈列室 [包含客户、库存和订单列表 - 所有列表 私人的。 Showroom 也有 addCustomer 方法]
我希望deskClerk 对象将客户添加到Showroom 对象。为此,我有以下选择:
- 我可以将 Showroom 对象传递给deskClerk,然后使用 Showroom 中的 addCustomer 方法来添加客户。
- 我可以直接将 Customer 添加到 Showroom,因为 Showroom 对象已经具有 addCustomer 方法。
- 我可以从 Showroom 继承deskClerk 对象,在这种情况下 DeskClerk 将能够使用 Showroom 的 addCustomer 方法。
我的问题是:
- 以上三个选项中哪一个逻辑合理?
- Showroom 是否应该有 addCustomer 方法?陈列室 应该只是 Stock、Customer 和 Order 列表的存储对象,对吧?
【问题讨论】:
-
您能详细介绍一下您要解决的现实问题吗?什么是 DeckClerk、Customer 和 Showroom 类?办公桌文员做什么的?展厅是做什么的?为什么它必须了解客户、库存和订单?客户、库存和订单有什么关系?
-
这是汽车展厅的软件模型,汽车展厅肯定会有一个负责日常销售的“deskClerk”,以及一个可以评估销售情况的“StoreManager”等等。deskClerk需要的方法有限只访问他有权访问的字段。
标签: c# oop inheritance object encapsulation