学习应用 OOP 的第一步是将常见的功能和数据收集到类中。一开始你不会做得很好,但你会变得更好。Code Magazine 最近的一篇关于回归基础的文章很好地表达了这一点。
开始尝试制作(将成为的类)代表解决方案中真实事物的真实对象。(有一个花哨的名字,但它也是非常基本的。)这并不是让实用程序类成为方便的、与主题相关的功能。尝试安排事情,以便在对象中维护的数据在调用该对象的方法时为您保存参数。将存在的对象想象为社区中真实的个体事物。拟人化他们。安排事情,这样您在使用它们的功能时就不必担心课堂上发生了什么。
一开始我不会担心所有这些设计模式。最好先练习您所学的基本 OOP 概念。专注于这些模式会导致很多人跳过真正思考 OOP 的哲学,而是试图将他们的情况塞进一个预先打包的计划中。阅读有关娱乐和创意的“设计模式”。稍后,您将想要真正研究它们并尝试专门实施其中的一些。
简而言之,你必须投入并开始应用你所学的知识。在你做出一些好的设计之前,你需要先做出一些糟糕的设计,所以不要担心。
针对提问者的评论进行编辑:我认为下一步可能是专注于您的班级之间的关系。例如,一旦您在逻辑中使用了 Customer 对象,您就必须不费吹灰之力获取相关的 Order 对象。创建一个属性oCustomer.Orders
,即返回List<Order>
。(这是 ac# 示例。)在此属性中获取该客户的所有订单,将它们放入列表对象中,将其保存在私有变量中以防再次调用该属性,然后返回该列表对象。如果您已经这样做了,请寻找下一个最难尝试的新事物。也许您需要经常查找客户首次下订单的日期。然后,创建一个继承自的 Orders 类Collection<order>
来替换您的基本List<order>
,并添加属性 FirstOrder。然后你就可以做到了var FirstOrderDate = oCustomer.Orders.FirstOrder.OrderDate
。
继续尝试做下一个最难的新事物。继承和添加成员。用子类创建一个基类。覆盖基类成员。使用并获得良好的自定义集合。
从您正在使用的对象模型中学习。当您看到直观且易于使用的东西时,请这样做!在我职业生涯的早期,我不得不广泛使用直观且简单的 MS-word 对象模型。当我创建自己的库时,我试图复制这种感觉。结果很好。
最终研究模式。尽管我建议您不要对它们过于敬畏,但它们是想法的重要来源,最重要的是可以尝试的东西。(了解常见“模式”的名称也有利于交流。)例如,当您看到插件模型时,接口的概念就会真正有意义。