当前位置:  开发笔记 > 编程语言 > 正文

我如何摆脱程序编程和面向对象编程的习惯?

如何解决《我如何摆脱程序编程和面向对象编程的习惯?》经验,为你挑选了3个好方法。

我希望得到一些提示,以帮助我突破我认为这些年后的程序编程的坏习惯.每当我尝试在OOP中完成一个项目时,我最终都会恢复到程序化.我想我并不完全相信OOP(尽管我认为我听说过它的一切都很好!).

所以我想我经常执行的常见编程任务的任何好的实际例子,例如用户身份验证/管理,数据解析,CMS/Blogging/eComs都是我经常做的事情,但我无法得到我的围绕如何在OOP中进行操作并远离程序,特别是因为我构建的系统往往工作和工作良好.

有一件事我可以看作是我的开发的一个缺点,我经常重用我的代码,它经常需要更多的重写和改进,但我有时认为这是我的软件开发的自然演变.

但我想改变!对我的同事们,帮助:)关于如何摆脱这个令人讨厌的习惯的任何提示?



1> Blessed Geek..:

当你找不到合理的理由或动机时,使用面向对象编程有什么意义呢?

你必须以构思和操纵思想作为对象的需要为动力.有些人认为需要理解概念,流程或功能而不是对象,然后他们会被激发到面向概念,想法或功能流程的编程.

大约13年前,我从c切换到c ++只是因为我需要的想法,但c不会轻易执行.简而言之,我的需求促使我的编程面向对象.

面向对象的思维模式

首先,你有字节,字符,整数和浮点数.

然后你的程序开始混乱各种变量,本地和静态.然后你决定将它们分组为结构体,因为你想到了所有通常传递的变量.

数据集合

因此,打印机的信息应该将所有变量都包含在Printer结构中:

{id, name, location,
 impactType(laser|inkjet|ribbon),
  manufacturer, networkAddr},
  etc.

所以,现在,当您通过打印机信息调用函数后,您没有具有长参数列表的函数或具有巨大串扰可能性的大量静态变量.

纳入信息

但数据集合还不够好.我仍然需要依赖一堆函数来处理数据.因此,我有一个聪明的想法或将函数指针合并到Printer结构中.

{id, name, location,
 impactType(laser|inkjet|ribbon),
 manufacturer, networkAddr,
 *print(struct printer),
 *clean(struct printer)
}

当数据包含有关如何处理/感知数据的过程时,数据会逐渐变为信息.

量化信息

现在激光,色带和喷墨打印机并不都具有相同的信息集,但它们都有一组最常见的分母(LCD)信息:

任何打印机常见的信息:ID,名称,位置等

仅在带式打印机中找到的信息:usedCycles,ribbon(fabric | cellophane),colourBands等

仅在喷墨中发现的信息:墨盒等

仅在激光中发现的信息:...

对于我和许多面向对象的同类群组,我们更喜欢将所有常见信息量化为一个公共信息封装,而不是为每种打印机类型定义单独的结构/封装.

然后,我们更喜欢使用一个框架来管理每种打印机的所有功能参考,因为并非所有打印机都以相同的方式打印或清洗.

因此,您偏离对象的偏好/动机告诉您如果不使用对象,您的编程生活会更容易吗?您更愿意自己管理所有这些结构复杂性.你一定不能写出足够的软件来感受那种方式.

懒惰的必要性

有人说 - 必要性是创造力的母亲.(以及对金钱的热爱是邪恶的根源).

但对我和我的同伙来说 - 面对必要性的懒惰是创造力的父母.(以及缺钱是另一个邪恶的父母).

因此,我敦促你对编程采取一种懒惰的态度,这样最短路径的原则就会进入你的生活,你会发现但除了毕业之外别无选择,只能用自己的方法来编程.



2> S.Lott..:

步骤1.阅读一本好的设计模式书. http://www.oodesign.com/

第2步.选择你已经知道的东西并从OO的角度重新加工.这是Code Dojo方法.解决您已经理解的问题,并定义对象类.

我这样做了 - 并写下我的所作所为.

请访问http://homepage.mac.com/s_lott/books/oodesign.html#book-oodesign

您可以进行相同系列的练习,以获得OO设计和代码.



3> CesarGon..:

面向对象的思维模式基于比设计模式更基本的原则.设计模式是这几天不知怎么时髦(并已一段时间了),他们有用的,但它们是你可以把后,你更基本的东西,只是多了一个层绝对必须学习和掌握,如果你想要做OO正确.换句话说:你可以在没有设计模式的情况下完美地完成OO.事实上,在"设计模式"这个短语被创造出来之前,我们中的许多人都做得很好.

现在,有一些你不能没有的东西.我建议你从基础开始.阅读并理解Bertrand Meyer的"面向对象软件构建"第2版.它可能是关于OO编程的最佳书籍,无论是宽度还是深度.那就是如果你对编程感兴趣的话.

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有