Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

学了面向对象和设计模式后依旧只会写面向过程的代码 #549

Open
xusheng199318 opened this issue Aug 9, 2017 · 4 comments

Comments

@xusheng199318
Copy link
Contributor

虽然有学过面向对象和设计模式,对于书上说的例子也可以理解,但是在真正的web开发当中依然不知道该怎么做,有没有谁有什么在web项目中应用面向对象编程的demo可以参考下嘛?

@liubin-vip
Copy link
Contributor

产生这种现象原因主要还是开发任务紧急,没有留下足够的时间去分析需求。
其实上刘大大的关于面向对象的课的时候,刘大大给的发打折商品信息推送邮件的作业就是一个很好的例子。
我觉得面向对象编程主要步骤如下:
1.分析出需求中涉及的主角(对象)
2.分析各个主体的行为,把有相同方法的一类主角抽象出来(类)
3.分析各个主体之间的联系,从而设计出类之间的关联关系,如继承。
4.根据业务选用合适的关联关系组织各个类,是他们各司其职(设计模式)

总结下就是:根据需求决定所需的类、类的操作以及类之间关联的过程

@BlindingDark
Copy link
Collaborator

BlindingDark commented Aug 13, 2017

要自然的使用对象,而不是刻意使用对象

对象是一组数据及其操作这些数据方法的“集合体”。把数据和方法封装在一起是为了更方便使用。如果你不知道什么时候该用对象,什么时候不该用,那证明你对对象的理解还不够深刻,你应该多看例子,增加代码量,多思考。

不要提前设计,好的设计是一个渐进的过程

不要想着一次就能设计出来良好的模型,你应该先写出大概的样子,然后逐渐改进设计。你看别人写的非常精妙,特别漂亮,其实那是好多遍修改之后的结果,这东西和文学创作有相似的地方。先写,先完成功能,然后重构,提取冗余代码。

@onlyliuxin
Copy link
Owner

在国内,传统的面向数据库表的开发方式非常流行, 尤其是很多维护性项目,你根本没有机会去设计领域模型-- 只是在其中修修补补, 何来OOD ?

现在虽然用不上,但是一定要学会OOD的精神,随着时间的推移,你的职责会越来越大, 负责的领域会从一个模块变成一个系统, 到时候大有用武之地。

不要着急, 现在不妨从你负责的模块开始考察, 看看有没有改进余地, 能不能应用OOD的思想去重构下, 千里之行,始于足下。对于一个遗留的,庞大的,可以工作的系统,重构通常都是这么开始的。

@myparamita
Copy link
Contributor

感觉项目紧急情况下,依赖于后期重构在很多情况下也是很艰难的。特别是项目越来越庞大之后,如果能维持正常运转,很多leader是不会冒险去重构的。
所以一开始还是需要有一个相对良好的架构和原则,减少后期的重构阻力。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants