前言

本阶段作业已经完成,完成过程中产生一些体会,于此记录,做一阶段学习的总结。

首先面向对象设计思想经三次作业已经在我个人的思想中已经形成一定思维模式,同时在本阶段作业中遇到一些困难但同时也收获了许多有价值的对将来学习有意义的认知和了解,这将对我下一阶段的学习起到启导和关键性帮助。在完成作业的过程中,自我个体独自查阅了许多相关资料,了解每次作业测试点的意义,在完成作业的过程中我同样收获了许多。

作业过程总结

1.第一次作业起初手足无措,假期过程中对编程渐渐生疏,但仍旧凭借着一贯面向过程的思想,同时参考之前的题设,完成了作业内容,但并没有形成对面向对象设计思想的认识和理解。第二次作业,作业题目难度较大,浪费时间较多,不能够完全凭借着旧的知识和对编程的认知完成作业题目,通过课设,自己对如何完成作业感到困惑并且感知到凭借旧的东西是不能够解决当下面对的问题,应该打开思绪,接受新的思想,于是,尝试理解面向对象设计思想,并尝试加以利用到解决问题,将自己的理解付诸实践,最终在作业结束前,有一定收获,结束第二次作业。第三次作业,第一题就前面两次作业做一次简单的复习,解决了,剩下的题目,初阶段则完全没有思路。经过查阅相关资料,和反复思考面向对象程序设计的思想和便利,整合了一部分问题,一定程度上完善了作业,但仍有所欠缺,需要更多的联系和思考增强认识。经过三次作业,三次作业目的要求逐渐由面向过程转向于面向对象,循序渐进地引导个人思考,两者之间的差别,和实现,由知其名,不知意,转到,知其名,大知其意再转到基本的认知和熟悉,知其名,懂其意。

2.第一次作业面对的问题大部分是由于题设算法设计的瑕疵,导致程序报错。第二次作业,基础语法错误,不能熟练使用Java语言进行编程,后续通过简单的基础练习,得以解决一部分,仍有一部分问题,是程序设计思想不能够与Java语言相结合,即理论不能够充分应用到实践,根本原因是对面向对象编程设计思想的理解不充分,且过度依赖于面向过程思想。第二次作业中,编程调理不清晰,导致程序不能够流畅运行,不能充分利用class的关联和对方法的设计解决作业中的问题。第三次作业,最大值测试听始终报错不能通过,百思不解,是由于代码中忽略了边界点的测试通过,经过修改,避免变量增大到或者贴近int类型最大值,得而通过。

3.三次作业花费时间,呈山峰式变化,第一次作业与第三次作业花费时间较少,第二次花费时间最多,大约是第一次作业和第三次作业时间总和的二倍。

4.需要催面向对象程序设计思想有更深刻的认识和理解,同时需要完善对语法掌握,减少编辑器可预见性报错,减少低级错误的发生,重视测试问题,每次测验是既要选取一般书也要选取特例,如边界值,避免一叶而障目。

OO设计心得

当需要实现一个功能的时候,每一个步骤我们都需要自己去做,处理实现功能的每一个细节。

当需要实现一个功能的时候,我们不需要自己去做,可以直接找一个已经具有该功能的东西,来帮我解决问题。

    优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 
    缺点:没有面向对象易维护、易复用、易扩展

  面向对象:

    优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护 
    缺点:性能比面向过程低

1.由查资料知道面向对象设计有常用七大原则

1.单一职责(Single Responsibility Principle)

2.接口分离原则(Interface Segregation Principle)

3.开放封闭原则(Open Close Principle)

4.依赖倒置原则(Dependency Inversion Principle)

5.里氏替换原则(Liskov Substitution Principle)

6.合成复用原则(Composite Reuse Principle,CRP)

7.迪米特法则(Law of Demeter)

遵守它们可以使我们的代码更加鲜活,易于复用,易于拓展,灵活优雅。不同的设计模式对应不同的需求,而设计原则则代表永恒的灵魂,需要在实践中时时刻刻地遵守。就如ARTHUR J.RIEL在那边《OOD启示录》中所说的:“你并不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看做警铃,若违背了其中的一条,那么警铃就会响起。”

测试的理解与实践

之前我对测试的认识,很局限,很浅显。以为简单测试一下就可以了,很显然这是错误的,无知的,人对于不了解,认识不够透彻的事物一好喜欢如此,我相信同学中,对测试的理解认识不会仅仅我一人如此,测试往往是一个整体的过程,需要整体的设计与规划,不应该想到什么就做什么。当测试用例及测试环境完善后,通过测试用例倒逼代码的完善和重构。在没有充分的测试用例的情况下,谈代码的重构都是扯淡。这种做法的后果就是埋下无数的雷,后人排雷不知道要用掉多少人力和物力。排雷多了后,人的斗志和信心都被打磨的干干净净,也不会有完善优化代码的想法。代码质量离不开测试。代码质量保证了,功能才能稳定。

课程收获

1.对面向对象设计思想有了基本全面的认知,虽然还不深切,但仍然感觉收获很大,这是却别于面向过程思想的另一一条路

2.对Java语言有了初步的掌握

对课程的建议

 

posted on 2020-04-04 00:01  wsl0142  阅读(79)  评论(0)    收藏  举报