一次面向对象编程实践

经过这次TOP(Thinking Oriented Programming)的相关学习之后,觉得TOP对我的启发是很大的。

这次作业可以在CoffeeScript和LiveScript中选择,我选择的是前者,我在看了CoffeeScript和LiveScript相关文档后觉得两者是比较相似的,CoffeeScipt比较像Python, Ruby之类的,而LiveScript就比较像Haskell,更加函数式,虽然代码量应该是LiveScript比较少,但我还是选择了CoffeeScript,因为我觉得对于我来说,CoffeeScript写起来应该比较顺手点,也简单一些。用了CoffeeScript写出来的代码感觉简洁易读了很多。使用jQuery可以方便地操作DOM,实现AJAX等,而CoffeeScript与jquery结合起来就更强大了,方便了很多。

在写Gruntfile的时候遇到了不少问题,不过上网查资料基本都能解决。使用了Grunt之后觉得它是一个强大的自动化工具!可以省去很多力气。语言的简化,框架和自动化工具可以让我专注于写代码。

在写这次代码的时候,因为有上一次的经验,题意了解清楚了,于是写得比较顺利,这次就更注重于面向对象的思想。写代码之前先想清除,而不是一边写一边想,那样会更容易出错。写之前先想要完成的功能之间的关系以及不同的情况,例如在各种情况下点击不同地方的效果,然后把这些关系抽象出来变成类,函数,让不同对象负责不同的功能。例如点击按钮要有点击事件,状态切换等功能,于是通过创建一个按钮类,给予按钮自己的属性跟方法,来响应点击等事件。上次作业中没有真正地写出机器人来,就是因为没能深刻理解面向对象方法,这次按照要求写,把相关的功能封装起来,S2-S5中的点击@按钮后的操作是通过机器人对象来进行操作的,感觉这样做思路是会清晰一点的。在命名方面就尽量让函数名或变量名变得更可读,有什么功能的就叫什么名字。这样整个流程下来是比较轻松流畅的,就像堆积木一样,可以一层一层地堆起来,这大概就是面向对象的好处吧。

时间: 2024-10-29 03:13:42

一次面向对象编程实践的相关文章

深入解读JavaScript面向对象编程实践

Javascript是一门解释性脚本语言,同时它也是一门面向对象编程语言,但是它跟Java,c++等又不一样,因为它没有类(class),那么我们要如何把属性( property)和方法(method)封装成一个对象,从原型对象实例化出来一对象呢? 一.对象类的创建 在JavaScript中,我们通常可以使用构造函数来创建特定类型的对象.诸如Object和Array这样的原生构造函数,在运行时会自动出现在执行环境中. 此外,我们也可以创建自定义的构造函数. 1 function Man(name

PHP 面向对象编程和设计模式 (5) - PHP 命名空间的使用及名称解析规则

PHP高级程序设计 学习笔记 2014.06.12 命名空间概述 PHP 在 5.3.0 以后的版本开始支持命名空间.什么是命名空间?从广义上来说,命名空间是一种封装事物的方法.在很多地方都可以见到这种抽象概念.在PHP中,命名空间用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题: 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突. 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性. PH

C++ Primer 学习笔记_65_面向对象编程 --概述、定义基类和派生类

面向对象编程 --概述.定义基类和派生类 引言: 面向对象编程基于的三个基本概念:数据抽象.继承和动态绑定. 在C++中,用类进行数据抽象,用类派生从一个类继承另一个:派生类继承基类的成员.动态绑定使编译器能够在运行时决定是使用基类中定义的函数还是派生类中定义的函数. 继承和动态绑定在两个方面简化了我们的程序:[继承]能够容易地定义与其他类相似但又不相同的新类,[派生]能够更容易地编写忽略这些相似类型之间区别的程序. 面向对象编程:概述 面向对象编程的关键思想是多态性(polymorphism)

面向对象编程思想

http://blog.csdn.net/yzh648542313/article/details/34157593 面向对象是一种新兴的程序设计方法,或者说它是一种新的程序设计范型,其基本思想是使用对象,类,继承,封装,消息等基本概念来进行程序设计. 它是从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题,认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单

PHP面向对象编程(imooc)代码合集(一)

该课程内容属于PHP语言学习中的中级课程,只要有基本的php语法基础,四小时内上完这门课程绰绰有余.学习PHP面向对象编程,为我们进一步学习更高级的课程打下基础,如后台框架.微信后台的二次开发的学习等等. 课程链接:<PHP面向对象高级实践> 以下是课程的基本内容: 继承.访问控制.Static(静态)关键字.重写.Final关键字.数据访问深入探讨.接口多态和抽象类. 下面用实例代码加以叙述,并打有详细注释,方便初学者学习. 第一篇主要是用一个NBA球星的类加以阐述类的定义和实例化,通俗易懂

面向对象编程——设计模式之一

一.面向对象 面向对象,就是将一些属性和行为封装成对象,对于使用者来说不用关心对象的内部具体实现,只管调用它公开的属性方法就行了.同一类型的对象抽象出来就是类.类是对象的模板. 面向对象编程,共三步: 1.设计系统的类和接口: 2.设计类和接口的方法和属性: 3.建立类类和接口之间的关系(继承.实现.依赖.关联(聚合.组合关系)): 类和接口之间的关系请参考:http://www.cnblogs.com/liuling/archive/2013/05/03/classrelation.html

C++ Primer 学习笔记_69_面向对象编程 --继承情况下的类作用域

面向对象编程 --继承情况下的类作用域 引言: 在继承情况下,派生类的作用域嵌套在基类作用域中:如果不能在派生类作用域中确定名字,就在外围基类作用域中查找该名字的定义. 正是这种类作用域的层次嵌套使我们能够直接访问基类的成员,就好像这些成员是派生类成员一样: Bulk_item bulk; cout << bulk.book() << endl; 名字book的使用将这样确定[先派生->后基类]: 1)bulk是Bulk_item类对象,在Bulk_item类中查找,找不到名

C++ Primer 学习笔记_68_面向对象编程 --构造函数和复制控制[续]

面向对象编程 --构造函数和复制控制[续] 三.复制控制和继承 合成操作对对象的基类部分连同派生类部分的成员一起进行复制.赋值或撤销,使用基类的复制构造函数.赋值操作符或析构函数对基类部分进行复制.赋值或撤销. 类是否需要定义复制控制成员完全取决于类自身的直接成员.基类可以定义自己的复制控制而派生类使用合成版本,反之,基类使用合成版本,而派生类使用自己定义的复制控制也可以. 只包含类类型或内置类型的数据成员.不包含指针的类一般可以使用合成操作,复制.赋值或撤销这样的成员不需要使用特殊控制.但是:

C#编程实践–产假方案优化版

前言 既然作为一个踏踏实实学习技术的人,就要有一颗谦卑.虚心和追求卓越的心,我不能一次就写出很完美的代码,但我相信,踏踏实实一步一步的优化,代码就可以变得趋近完美,至少在某一个特定场景下相对完美,这和做人有很类似的道理,这是一种态度.前几天,发了我在博客园的第一篇编码实践<C#编程实践–帮老婆计算产假方案>(简称前文),引来了几位博友(这其中还有几位是以前一起共事几年的同学和同事,感慨大家在技术道路上的坚持和不易)的围观,他们好心点个赞我表示很感激,当然他们也提出了建议,对于这些建议我也不打算