Sha*_*pta 13 .net oop encapsulation
我一直致力于自己的一些项目,并没有任何可观的曝光.目前我使用简单的方法,用于开发小型应用程序可以忽略不计OO方法如创建使用的功能有点用构造的多态性数据库功能的通用类,但我真的不能够想到如何实现使用OOP整个项目的逻辑.
我知道什么是接口,抽象类,密封类和其他oops概念和非常清晰的图片.但问题是我何时以及如何在应有的地方大量实施OOP.
我是否需要学习实时应用程序及其案例研究,如果是这样,请向我推荐一些我可以阅读它们的网站或书籍/电子书,并且能够实现它们.
目前我觉得自己在编程时不完整.我有效地实现了数据库及其大部分组件,但在尝试使用OOP时却是一个小孩.
我已经阅读了很多例子,试图让人们理解像形状一样的OOP,例如汽车.所有这些.他们不清楚概念,但还不足以在一些现场项目中实施
Pat*_*her 15
学习应用OOP的第一步是将常用的功能和数据收集到类中.一开始你不会做得很好,但你会变得更好.一个最近在代码杂志文章约返朴归真表达了这一点.
开始尝试制作(将成为的类)真实对象,代表解决方案中的真实事物.(这里有一个奇特的名字,但它也非常基本.)这不是制作方便,主题相关功能的实用程序类.尝试安排事物,以便在调用该对象上的方法时,对象中维护的数据会保存参数.想想在社区中作为真实个体事物存在的对象.个性化他们.安排一些事情,这样你在使用他们的功能时就不会担心课程中发生了什么.
我一开始不担心所有这些设计模式.最好先练习你学到的基本OOP概念.关注这些模式会导致很多人跳过真正考虑OOP的理念,而是试图将他们的情况塞进预先打包的计划中.阅读有关娱乐和创意的"设计模式".稍后,您将真正研究它们并尝试专门实现其中的一些.
简而言之,您必须跳入并开始应用您学到的知识.在制作一些好的设计之前,你需要做一些糟糕的设计,所以不要担心.
编辑以回应提问者的评论:我认为下一步可能是专注于你的课程之间的关系.例如,在逻辑中使用Customer对象后,您应该花费No Effort获取相关的Order对象.做一个oCustomer.Orders返回的属性List<Order>.(这是ac#示例.)在此属性中获取所有客户的订单,将它们放在列表对象中,以便在再次调用该属性时将其保存在私有变量中,并返回该列表对象.如果您已经这样做了,那么请寻找下一个最难尝试的新事物.也许您需要经常找到客户首次订购的日期.然后,创建一个继承的Orders类Collection<order>来替换你的basic List<order>,并添加属性FirstOrder.然后你可以做var FirstOrderDate = oCustomer.Orders.FirstOrder.OrderDate.
继续尝试做下一个最难的新事物.继承并添加成员.使用子类创建基类.覆盖基类成员.使用并获得自定义集合.
从您正在使用的对象模型中学习.当您看到直观且易于使用的东西时,请这样做!在我的职业生涯早期,我不得不广泛使用MS-word对象模型,这种模型直观且简单.当我创建自己的库时,我试图复制那种感觉; 结果很好.
最终研究模式.尽管我建议你不要被他们过度敬畏,但他们是一个很好的思想来源,最重要的是要尝试的东西.(了解常见"模式"的名称也有利于通信目的.)例如,当您看到插件模型时,接口的概念确实有意义.