码迷,mamicode.com
首页 > 其他好文 > 详细

第八章 面向对象实例补充

时间:2016-02-03 06:39:14      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

面向对象的特征:

  1. 封装:就算对象内部的数据结构改变了,只要公开给外部的方法名、功能没有改变,使用者就照常使用即可,比如我们去调用Time类的方法。
  2. 多态:Object类、String类和Float类的各个对象调用to_s的方法,得到的结果是不一样的。

多态的思考方法----鸭子模型

"能像鸭子那样走路,能像鸭子一样啼叫的,那一定是鸭子",注重对象的行为(走路、啼叫都像鸭子),那么不管是不是真的鸭子都把它当作鸭子。举例如下:

技术分享

fetch_and_downcase只要求(能以ary[index]形式获取元素,获取的元素可以执行downcase方法),所以只要能有这些行为,不管是数组还是散列,这就是鸭子模型。

面向对象的例子:

概念和网络知识补充:

体系----是指使用哪种通信协议

 

连接网络上的服务器----需要知道服务器的主机名和端口号,如下Ruby官网服务器主机名是www.ruby-lang.org(就是跟127.0.0.1那个一样,只不过它不是本地调试,提供外部访问的域名),端口号是80.

 

路径----通过主机名和端口找到服务器后,要访问特定文件,还需要路径定位到服务器上资源的位置

 

现阶段我们只要知道URL是URI的一种就可以了。

技术分享

 

获取Ruby官网首页的HTML,并将其输出到控制台的例子:

技术分享

着重讲一下第五行调用Net::HTTP #get方法的时候,具体进行的流程:

  1. 使用主机名和端口号,与服务器建立通信(叫做 用主机名和端口号,与服务器建立通信(叫做 socket,套接字)

② 使用路径,创建代表请求信息的 Net::HTTPRequest 对对象

  1. 对套接字写入请求信息

④ 从套接字中读取数据,并将其保存到代表响应信息的 Net::HTTPResponse 对象中

  1. 利用 Net::HTTPResponse 本身提供的功能,解析响应信息,提取文档部分并返回。

流程图如下所示:

技术分享

 

第八章 面向对象实例补充

标签:

原文地址:http://www.cnblogs.com/blueColdFire/p/5178875.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!