【问题标题】:OOP implementation issues for new progammer新程序员的 OOP 实现问题
【发布时间】:2012-03-15 13:24:08
【问题描述】:

我希望这是一个合适的地方。

我对 .NET 还很陌生,在实现 OOP 概念方面遇到了一些问题。 我看了几本关于 c# 的书,这就是他的问题。

到目前为止,我在理论上了解 OOP 概念,但我不知道在现实世界场景中“如何以及何时”使用这些概念。例如我知道抽象、密封、公共类等的定义,但我不知道何时使用它们。

每本书都谈到了人类或汽车类的例子。但如果我想创建一个简单的库存系统,所有这些例子似乎都不起作用。我将如何定义有关库存系统的类、方法和属性。这是我总是卡住的地方。

如果可能的话,请告诉我一些可以参考的书或资源。

谢谢

【问题讨论】:

  • 我喜欢amazon.com/Agile-Principles-Patterns-Practices-C/dp/0131857258/…。不要被标题吓到。我也不认为这是问这个问题的地方。
  • 我认为书籍在这种情况下不会有帮助。为什么不?因为,正如你自己指出的那样,你的问题不是缺乏理论理解——如果是的话,我会读更多的书——你的问题是缺乏具体的实施和实践。听起来很粗糙,你只需要练习。书本只能给你一个练习的方向。
  • Imran,你说的太对了,我很高兴你现在看得这么清楚。确实,很多书只展示了猫、狗和男孩。
  • 关于如何处理面向对象设计的问题:尝试列出所有名词及其关系。使用它来推动设计过程。我在这里举个例子。 stackoverflow.com/questions/9444818/…

标签: c# oop


【解决方案1】:
【解决方案2】:

您可能想阅读 Ron Jeffries 的 Extreme Programming Adventures in C#。就 C# 版本而言,它已经过时了,但它是一本好书。这本质上是他通过编写 XML 编辑器学习 C# 的日记。如标题所示,它还侧重于 XP 方法,尤其是测试驱动开发。

通过以日记或日记的形式呈现材料,作者对他的思维过程提供了有趣的见解;叙述的流程描述了他解决问题的过程(寻求解决方案,然后意识到它没有好处,放弃它以寻求另一个解决方案,等等)。

编程书籍中通常没有这方面的内容,这些书籍通常列出现成的解决方案,有时没有充分解释正在解决的问题。在现实生活中,问题出现在解决方案之前,而不是相反。

【讨论】:

    【解决方案3】:

    很难推荐一本好书。他们中的大多数描述了 OOP,但没有描述“何时”和“多深”。所以我给你两个大建议:

    1. 仅在您认为需要时才使用最少、最简单的抽象。不要过度设计,不要过度思考。保持简单和松散耦合
    2. 第二个建议是第一个建议的相反补偿点。想想未来 3 年。想象一下你的系统在那个时候可能会是什么样子。预测未来的需求和客户的愿望。这将为您提供有关您的设计应该有多详细的提示,以及您应该在开始时将多少抽象嵌入到系统中以使您的未来更加光明

    【讨论】:

    • 是的,我认为这是开始的方式。我(有点怀疑)自愿为药店创建库存系统。他们向我提供了他们药物的数据。我需要制作一个在 localhost 上运行的应用程序,用于跟踪购买和销售以及到期问题等。我想通过 OOP 和 .NET 来处理它
    • 我要补充这个好建议:尽早考虑哪些事情会发生变化,哪些事情会随着时间的推移保持不变。例如:销售税政策一直在变化,但将计算销售税这一事实并没有改变。隔离可能发生变化的事物,不要“固化”对它们的依赖。
    • @imran2155:你的基本问题不是OO设计问题。 先解决数据库设计问题。不要本末倒置;你的任务是管理数据。 OOP 很好地解决了某种问题,但它不是灵丹妙药;不要爱上 OOP 并使用它,即使它既不合适也没有必要。
    猜你喜欢
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多