OO第二阶段纪实】的更多相关文章

$ 0 写在前面 往往是那些令人格外痛苦的经历,会带给人以最快的成长.转眼间,半个学期的时间过去了,时间匆匆,不管之前对这几次充满了怎样的畏惧,在身边朋友们的帮助和努力下,我也渐渐度过了一个个难关.回首走过的路,满满的收获和成就感. $ 0-0 多线程 or 多进程 在这一学期的另一门核心专业课OS中,我们接触到了进程与线程的概念,我们在操作系统层面上对二者的运行机制有了初步的感性认识.在近几次的作业中,我们真正将多线程的编程思想应用到了所编写的工程项目开发中去,也以此为契机,亲身体验到了多线程…
第五次作业--多线程电梯 一.设计策略 本次作业是我们第一次接触多线程,给程序添加多线程功能后最大的挑战是实现共享数据的安全.避免冲突,由于这次作业是第一次尝试多线程方法,因此采用了将所有方法都加上synchronized修饰符的方法来避免数据冲突. 二.程序结构 由于本次作业完成的比较匆忙,因此并没有全面的实现多线程的方式,且在测试中出现了较多的bug.由类图可以看出,程序分类较为简单,每个类的功能太过集中,有违oo的设计原则,同时,方法的数目也相对较少,随之而来的是较多的重复代码,这是极为不…
第五次作业:         设计策略: 本次作业设计的基本思路是按照指导书所给的推荐方法来完成的,即共用对象为队列盘,线程有电梯.调度器.以及扫描器,扫描器将控制台输入的有效指令加入到队列盘中,调度器依据指导书的原则分配任务给电梯,然后电梯将其一条条执行.在电梯的类中,加入了一个小队列,即电梯依次需要完成的任务.在同步控制中,对队列盘对象加锁,在某一线程使用时,其他线程无法更改,但是可以访问.这样存在一些时间上不同步的问题,导致了一些bug的出现. 度量: 类图: 本次的类图较为简单,由于实际…
0.前言 此阶段总共进行三次大作业,其中第一次作业中的第一题,水文数据校验及处理中,遇到较大的难题,第一次接触正则表达式,编码过程中显得难度特别大.第二次作业同样也是对于一元多项式求导中对单项的正则校验遇到难题.第三次作业总体难度不大,值得高兴的是,求素数的加分题也写出来了.总而言之,这阶段的作业比上一阶段的难度要大,花的时间也多.1.作业过程总结 第一次作业,主要涉及到继承与正则表达式的知识,第二次作业则为继承与多态,正则表达式,第三次作业以继承.多态性使用方法以及接口的应用为主.三次作业都涉…
$0 写在前面 万里长征已过大半,即将迎来胜利的曙光.一路走来,经历过种种艰难,体会颇深.希望能记录下这篇博文,来总结这一个月来的收获与感悟. $1 规格化设计的发展历史 上世纪50年代,软件伴随着第一台电子计算机的问世诞生了.以写软件为职业的人也开始出现,他们多是经过训练的数学家和电子工程师.1960年代美国大学里开始出现授予计算机专业的学位,教人们写软件.在计算机系统发展的初期,由于目的的单一性,软件的通用性是很有限的.大多数软件是由使用该软件的个人或机构研制的,软件往往带有强烈的个人色彩.…
$ 0 写在前面 在DDL一次次的推动下,历经三个周期的更迭,一个月的时光匆匆而过.谨撰此博文,以记录这一段见证成长的心路历程. $ 0-0 JAVA“一天速成”没有修习过传说中的“OO先导课”,在学期开始之前也从未接触过JAVA编程,真正的从零开始学JAVA.有了先前课程的基础,经过了一年的积累,在短时间内学会使用一门语言并不困难,在加上JAVA天然的与C语言之间的某种相似性,也使得“JAVA一天速成”并非遥不可及. $ 0-1 “过程式”VS“对象式”但值得注意的是,JAVA作为一种面向对象…
面向对象课程的第二个阶段结束了,作业们由简单的玩具模式步入到复杂的多线程地狱模式,由之前的算法简单实现有坑转变成算法复杂实现有很大的坑.一个最重要的心得就是一定要在动手敲代码实现之前对整个程序的实现做到心中有数,想好每个模块的功能和借口,这样才能避免在后期的时候改来改去,甚至出现可笑的bug.简而言之就是由随心所欲搬砖,转化成照着蓝图搬砖,这样很容易就能还在雏形的时候发现哪块砖放错了位置.当然后期也需要测试,看看哪些砖会在住人的时候掉链子. 第五次作业: 类图 度量图: 我的问题在于把太多的任务…
1 架构设计 经过了接近一学期的程序设计训练,在这一单元的第一次作业中我就非常注重架构的设计,竭力避免像之前一样陷入"第一次作业凑合,第二次作业重构"的不健康的迭代模式.整体上来说,我对我本次作业的架构还是很满意的.废话不多说了,直接上类图: 从类图也可以看出来,整体的架构非常工整.MyUmlGeneralInteraction类是整个程序的中心,负责实现接口UmlGeneralInteraction的全部方法,以及输入的读取和分配.它下面所属的三个类是ClassModel, Stat…
OO第四单元总结及课程总结 一.前言 紧张刺激的OO“昆仑课程”接近尾声,经过一个学期的学习,我的收获和感触颇多,借此博客作业的机会,对自己OO这门课程做一个总结.本博客主要有以下五个方面,一是第UML单元的作业总结,二是课程期间架构设计及OO方法理解的演进,三是测试理解与实践的演进,四是自己的课程收获,五是给课程的三个具体改进建议. 二.第四单元作业总结 (一)第十三次作业 1.任务摘要 实现一个UML类图解析器,可以通过输入各种指令来进行类图有关信息的查询. 2.要点分析 理解UML类图的几…
毕业设计用到了OpenGL,由于不会用MFC和Win32API做窗口程序:自然选用了GLUT.GLUT很好用,就是每次写一堆Init,注册callback,觉得有点恶心,于是对他做了简单的OO封装.记录在此,如有同学有兴趣可以下载. GLUT应用程序 直接使用GLUT的程序是这样的: #include <GL/glut.h> #include <stdio.h> void display() { // OpenGL commands } // 一般按键(所有可打印字符,ESC也在内…
Atitit 基于sql编程语言的oo面向对象大规模应用解决方案attilax总结 1. Sql语言应该得到更大的范围的应用,1 1.1. 在小型系统项目中,很适合存储过程写业务逻辑2 1.2. 大型项目或产品型项目(有换数据库需求的),大规模使用js编写业务逻辑,把后端大力简化为一个rest接口的数据库驱动2 1.3. 小部分模块,重视安全的,使用后端业务逻辑模式2 1.4. 貌似比较理想的模式 前端h5(ui界面)+js(业务逻辑)+rest(通讯层)+ sql(业务逻辑)+数据库(存储)2…
就是问,在面向对象思想里,先有对象还是先有类,乍一看和先有鸡蛋还是先有鸡是一类问题,其实不然!这个问题,在lz考研复试的时候被面试官问过,一模一样,如今又在一个笔试题里看到了类似的题目,眨一下,有人会说,没有类,哪里来对象呢?其实不然,这个问题很经典,考的就是oo思想和软件工程的意识. 我经历之后的收获:面对问题,首先分析提问的角度,看清问题 这样问,显然对方是在考察被考者,oo思想掌握程度和软件工程的意识,都说在OO中,换句话就是在面向对象思想里(包含各行各业)……自然不需要在乱想什么内存角度…
作为大部分报表程序的基础,ALV GRID差不多是每个ABAP开发者必须了解和掌握的内容,因此网上也不乏相关资料,而ALV TREE的应用相对较少,中文资料也就比较少见了.实际上,ALV TREE和ALV GRID的实现整体上是相似的,因此对于使用过ALV GRID的开发者来说,掌握ALV TREE会比较容易.但二者也有一些不同之处,可能会在开发过程中引起人们的困惑,现总结如下 首先定义概念:文中的ALV GRID指的是由OO方式建立的.由类cl_gui_alv_grid实例化后产生的ALV G…
引言 在OO的工作中,我们一定会涉及到类,抽象类和接口.那么类和抽象类以及接口到底扮演的什么角色? 本文主要是从人类社会的角度阐述类与抽象类以及接口的"社会"关系,从而让我们抛弃书上的那些死记硬背的概念,快速理解他们的区别与联系?   如果大家觉得还有必要把这块更新的更好,还请多多反馈. 如果觉的对您有用还请点击 "推荐"下,我会持续更新更多新的内容. 古老的传说 相传盘古开天劈地后,女娲一天在黄河边梳头时,突发奇想以泥土仿照自己抟土造人,创造并构建人类社会.后来又…
Problem Description OO has got a array A of size n ,defined a function f(l,r) represent the number of i (l<=i<=r) , that there's no j(l<=j<=r,j<>i) satisfy ai mod aj=0,now OO want to know ∑i=1n∑j=inf(i,j) mod (109+7).   Input There are m…
笔者学习了当前(文末各文献)lua下的各种OO实现方法.略作笔记. 也提出了一些自己的想法.主要还是记录供将来着之参考.   1.概述   首先[2]PIL第二版中给出了OO的基于table的实现方式,核心方法是基于setmetatable方法.当检索到自己未提供的方法时,递归检索父类.文[5]给出了给出了基于闭包的实现方法.文[6]给出了is-a的方法的实现.文7给出了clone的实现.文[8]测试了基于table和closure的两种方案,并给出结论. 文[1]存储父类方法到本地能够减少调用…
OO的高层原则,面向对象设计的基本原则 设计模式之六大原则--开闭原则(OCP) 设计模式之六大原则--迪米特法则(LoD,LKP) 设计模式之六大原则--接口隔离原则(ISP) 设计模式之六大原则--依赖倒置原则(DIP) 设计模式之六大原则--里氏替换原则(LSP) 设计模式之六大原则--单一职责原则(SRP) OO的五大原则是指SRP.OCP.LSP.DIP.ISP. 开闭原则(Open Closed Principle)是Java世界里最基础的设计原则,它指导我们如何建立一个稳定的.灵活…
OO/A/D/P 对象和类 三大特征 对象: 对象是面向对象语言的一个极为重要的特点,所有的面向对象语言都有对象的共性. 1. 职责(单一) 2. 属性(数据.可改变的) 3. 函数(行为.方法.业务算法) 总结:一个完整的对象是具有属性和行为以及它自身的职责. 一个完整的对象是具有属性和行为以及它自身的职责. 类: 任何对象都需要经过一个设计的阶段,通过设计,就可以很好的描述一个对象的内容,那么,设计的工作就是由类来完成. 因此,类专门设计和描述了同一类对象共有的特征 总结:通过类设计出来的对…
Atitit usbQb212 oo 面向对象封装的标准化与规范解决方案java c# php js 1.1. 封装性是面象对象编程中的三大特性之一  三个基本的特性:封装.继承与多态1 1.2. 魔术方法 预定义方法2 1.3. 魔术常量(Magic constants) 预定义变量2 1.4. 适用领域 js php java c#2 1.5. 构造函数 __construct( ) vs xxxCls()3 1.6. 析构函数名称必须是__destruct( )  finally()3 1…
我们组比较特殊..三人结对 github:https://github.com/qingchanghan/WPFUI_Metro po一张照片: 石浩然,韩青长.陈彦吉 (台式机真的很高端,分屏贼帅) 1.结对编程的优点和缺点: 优点: 随时沟通交流,当遇到复杂的代码逻辑时,两个人比一个人能更好地理清代码思路. 一个人乱了另一个人不会乱,或者很难出现两个人一起乱,正确率整体.代码质量很高. 可以实现编程接力,在确定好todo项目后,可以交接工作,续航时间更长.一节更比六节长. 在心理上相互鼓励相…
Bete冲刺第二阶段 今日工作: web: 修复了a版本中接口数据返回错误的问题.通知对数据表新增了几个字段.并且新增了一个通知查询的接口. ios: 修正网络连接bug 招募功能界面完成但是跳转问题正在解决 目前所遇问题: web: bug是解决可以一步一步抠好,查查资料也就解决了.晚上手残,在eclipse的行数条上不小心设了个断点,导致启动tomcat的时候,debug一直弹出来.由于对debug使用不熟悉,加上debug里面没有显示断点位置,使得代码一直跑不起来,寻找了n久才解决这个问题…
对象将需求用类一个个隔开,就象用储物箱把东西一个个封装起来一样,需求变了,分几种情况,最严重的是大变,那么每个储物箱都要打开改,这种方法就不见得有好处:但是这种情况发生概率比较小,大部分需求变化都是局限在一两个储物柜中,那么我们只要打开这两个储物柜修改就可以,不会影响其他储物柜了. 而面向过程是把所有东西都放在一个大储物柜中,修改某个部分以后,会引起其他部分不稳定,一个BUG修复,引发新的无数BUG,最后程序员陷入焦头烂额,如日本东京电力公司员工处理核危机一样,心力交瘁啊. 所以,我们不能粗粒度…
OO与设计模式的原则.目标(转) 前两天,和一朋友聊到OO设计原则时,对设计模式有了更深的了解,在这里总结一下,与大家分享.OO(Object–Oriented )面向对象   OO方法(Object-Oriented Method,面向对象方法,面向对象的方法)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO (Object-Oriented)方法,是建立在“对象”概念基础上的方法学.对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具…
[课程设计]Scrum 2.0 多鱼点餐系统开发进度 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统WEB 5.Sprint 1时间:11.27-12.06 重案组成员   姓名 学号 博客链接 Github链接 队长 黄冠锋 201406114134 http://www.cnblogs.com/hgf520/ https://github.com/crown999   卢利钦 201406114130…
a problem where OO seems more natural to me, implementing a utility class not instantiable. how to prevent instantiation, thanks to http://stackoverflow.com/questions/10558393/prevent-instantiation-of-an-object-outside-its-factory-method/10558404#105…
一,总体概要 1,笔者浅谈 我是从学习Java编程开始接触OOP(面向对象编程),刚开始使用Java编写程序的时候感觉很别扭(面向对象式编程因为引入了类.对象.实例等概念,非常贴合人类对于世间万物的认知方式和思考方式.对于复杂的事物,人类是如何去认识.归纳.总结的?面向对象式编程就是在努力回答这个问题,而答案的核心就是两个字:抽象.所以面向对象式编程特别适合处理业务逻辑,因此被广泛应用于目前的软件开发当中.因为我们开发软件就是为了解决问题,面向对象式编程符合人类对于“问题”的认知方式),因为我早…
今天看到个题目:对象会动态的变化. 游戏精灵,有人和神仙,但是随着人的不断积分,会升级为神仙:神仙也可能会因为积分的减少而降级为人.这种情况怎么画出个类图来. 这是第一版的设计,正常思维.人和神仙都是游戏精灵,从Is-A的角度来说是正确的.但是问题是,当人升级为神仙的时候会出现: var person=New 人(); //人升级 person=new 神仙(); 这个时候原来的人其实已经死掉了,这是不对的.第二版: 把角色抽象出来,只有一种游戏精灵,但是他的角色是不一样的,升级或者降级以后只是…
OO’s Sequence Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5288 Mean: 给定一个数列,让你求所有区间上满足Ai%Aj!=0(Ai!=Aj)的Ai的个数之和. analyse: 对于Ai,如果我们知道最靠近Ai且能够整除Ai的数的下标l和r,那么Ai对答案的贡献就是(r-i)*(i-l).剩下的就是怎样去求每个Ai的l和r了. 首先我们预处理出:对于每个i,能够被1~i整除的数,用链表存起来. 那么对于输…
Go摒弃了许多OO的概念,但是还是很好的继承了OO的精髓——消息传递.我猜这个是学了Smalltalk的.通常我们说OO,我们会说这三大特性:对象,继承,多态. 1,Go中的对象 对于GO来说他的类型系统也分为两类:value type和reference type.value type就是内存中的内容,reference其实也是类似引用地址的指针.这样Go中的对象很自然的分为两类的:内容和引用内容的地址.Go的一个哲学就是让“天下没有隐晦的东西”.所以Go的对象在内存中的表示和其定义是一一对应…
今天同事和我们一起讨论分享了OO的设计原则,讨论使人明晰,有人一起讨论学习是一件幸福的事情. 1.开闭原则 对功能的扩展是开放的,对修改是闭合的. 可以应用于类的设计,框架的设计等. 为什么?开闭原则有利于保护已有的客户端代码,让原有的代码不会因为框架的扩展修改而发生变动,减少维护的成本. 如果你设计的框架经常变动,而且每次变动使使用的人要改很多,那么没人敢用了. 2.单一职责原则 应用于实现类,如果类有变化,那么引起变化的原因仅有一个 为什么?如果你在设计类的时候,没有进行接口拆分设计,直接封…