《 OO第三单元作业总结 》

时间飞逝,转眼即逝,一学期的Java课程就来到了尾声,似乎我还没有完全领悟Java的真正运用,只是大概学习了些皮毛

最后一个阶段是分三次大作业

①雨刷程序功能扩展设计

②统计Java程序中关键词的出现次数

③表达式求值

1.作业过程总

①总结三次作业之间的知识迭代关系;

第一次主要是理解感受java的设计模式,8大准则,对修改关闭,对扩展的运用!

其中最主要的是对于开放封闭的使用,其核心思想是:软件实体应该是可扩展的,而不可修改。也就是,对扩展开放,对修改封闭的。开放封闭原则主要体现在两个方面:

对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。
对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改。
 
第二次是最难的一次,统计Java程序中关键词的出现次数,要求学会运用java的数据结构list,compareable接口,Map,关键字的排序等
其中主要对灌入Java可移植的特性
但由于对于在编写代码的过程中,对于map和list的使用不太熟练,导致测试点很多都过不去,最后没在规定时间内完成
 
第三次是表达式求值,开始面向对象,进行分类操作,以及对类里方法和属性的调用;

对于分类:同一类型的东西,拥有相同属性,可以用一个类进行概括。

其中,需要对java基础知识总的融会贯通,合理,灵活运用,正则表达式,还需要久违的逻辑设计

③作业过程中遇到的问题及解决方法

第一次作业:仅仅只是数据较多,但实际还是比较简单的

第二次作业:一开始思路出现了错误,分类情况太多,其中发现关键词的计数和如何忽略注释及字符串花费了较多的时间,最后是在网上搜索才找了解决办法

第三次作业:

④每次作业花费的时间比例

 

每次作业大概花费了至少3天,其中第二次,第三次,花费了差不多6天,大部分时间拿来构思和改错

 ⑤对编程过程的严谨性的认识及教训

在编程过程中,通过不断的修改自己的代码,让我认识到编程时的逻辑一定要严谨,细节也是非常重要的。

过程中也是渐渐适应了Java的简单编程语言习惯

2.OO设计心得

依赖倒置原则:

高层模块不应该依赖低层模块,两者都应该依赖其抽象;

抽象应该依赖细节;

细节应该依赖抽象。

抽象的稳定性决定了系统的稳定性,因为抽象是不变的,依赖于抽象是面向对象设计的精髓,也是依赖倒置原则的核心。 
依赖于抽象是一个通用的原则,而某些时候依赖于细节则是在所难免的,必须权衡在抽象和具体之间的取舍,方法不是一层不变的。依赖于抽象,就是对接口编程,不要对实现编程。 

 

接口隔离原则:

使用多个专门的接口比使用单一的总接口要好。
一个类对另外一个类的依赖性应当是建立在最小的接口上的。
一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。
分离的手段主要有以下两种:1、委托分离,通过增加一个新的类型来委托客户的请求,隔离客户和接口的直接依赖,但是会增加系统的开销。2、多重继承分离,通过接口多继承来实现客户的需求,这种方式是较好的。 
 

心得体会:

通过这么多次的Java作业,体会到了许多

1:先构思,再去编程,其中不仅要构思代码怎么才能成功,还要想想怎么最简便,以后给客户做程序,还需要从客户的感受去思考问题

2:对识别出的类之间的关系有一定的判断,继承,组合,聚合,关联,依赖。类间联系的强度:继承 > 组合 > 聚合 > 关联> 依赖

3:确保我们代码容易维护和复用的关键

3.测试的理解与实践

     ①测试对于编码质量的重要性

测试能够对代码的完备性,可行性,优化等进行很好的评估,堂上讲过测试分为性能测试和功能测试,功能测试是完成基础的要求中的实现各项功能和行为

一个是根据功能要求将范围分成几类,各输入一组数据测试以发现某个范围的代码有问题;再一个是所要求数据的边界值,往往是决定总的测试范围是否正确。

.课程收获

总结这四周来在OO方面的教训及收获

通过这一个月时间的学习,我学到了新的数据类型,理解了“单一职责原则”与“开闭原则”。

而在这一学期的学期中,渐渐的体会到了Java的美好,从最初的连eclipse都不会用的少年,觉得Java和C语言差距不大,随便学学就会的人,到现在逐步领会类,逐步知道单一,开闭原则的运用,对于今后的学习方向

也有了一个大致的规划。而对于Java的开发领域也有了一定的了解,包括网站,嵌入式领域,大数据技术,甚至金融方面都有Java的影子

java设计的思想再今后的编程学习一定要用的到,虽然java课程结束了,但希望以后还可以多练习。

 

6.之后一阶段的学习计划之后一阶段的学习计划

通过课堂和课后作业提升自己的思维能力,转变思考问题的角度

浏览CSDN,博客园和其他网站一些文章,丰富自己的知识面,拓宽眼界。

多想想面向对象的思想到底是在说什么,多想想多态到底为什么要用,怎么用。

 希望老师能加强对学习上某些较难问题的讲解强度
多找些网课交叉学习,感受不同的思维方式
 
 
 
posted @ 2020-06-07 23:59  Rcombo  阅读(113)  评论(0)    收藏  举报