如何改进面向对象的编程?

Sil*_*nus 8 c# oop

我理解程序编程(嗯,谁没有),并希望对OOP和之后的功能有一个很好的理解.我只是一个业余爱好者所以它会花费我一个年龄和一天,但它的乐趣.

有没有人对我能做些什么来帮忙?项目创意?有充分记录的代码说明了他们的代码?

我目前正在使用C++,但C#看起来更好用.

Chr*_*tow 10

Head First有一些很棒的OOP书籍,涵盖了面向对象的分析和设计以及面向对象的设计模式.

  • 书籍很棒,只读书中的OOP并不会真正教给你.你真的需要一些实践经验. (8认同)
  • 有些人可能不喜欢Head First系列,因为它们似乎针对新手.当你暗示一本针对新手的书适合他们的时候,即使有一点经验的人也会被冒犯,但如果你已经接受了你还有更多需要学习的东西,那么这些Head First书籍就是_awesome_.他们给出了具体的例子,并以清晰简洁的方式陈述了原则. (4认同)

Dan*_*ger 6

我建议你阅读对象思想大卫-韦斯特.书中的代码非常少,但很多关于如何建模的讨论.

我希望有人在我开始时告诉我的一些事情是:

  1. 在对对象建模时,您应该关注的行为不仅仅是数据的形状.
  2. 尽管许多OO教程模拟了动物和车辆等现实世界的东西,但我们在OO软件中建模的许多东西都是概念和结构(在现实世界中没有物理表征的东西).


Dav*_*ims 6

我建议主要使用强类型语言,如C#或Java,因为许多设计模式和一般OOP原则都适用于强类型(GOF,Refactoring,Uncle Bob).Ruby非常棒,但很多常见的OOP原则(如编码到接口)都不适用.

花一些时间与鲍勃叔叔的SOLID原则.慢慢来,特别注意单一责任.如果你没有从鲍勃叔叔那里得到任何其他东西,那就把SRP拿到脑袋里并尽早应用.

我也喜欢鲍勃叔叔的代码katas的想法.我建议通过保龄球游戏卡塔工作.


Ben*_*son 5

要真正适应面向对象编程,您可以做几件事。

  1. 强迫自己用物体模拟现实世界的问题。创建类来表示对象,创建方法来表示它们可以做的事情。

  2. 使用真正将 OOP 强加给您的语言和/或框架。直到我参加了 Java 课程并开始大量使用 Swing,我才真正了解 OOP。我最近没怎么玩过 C#,但我认为 C# 或 Java 都是不错的选择。