A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 芦子骐 中级黑马   /  2013-4-18 02:57  /  1737 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 芦子骐 于 2013-4-18 02:59 编辑

    今天看了张孝祥老师的面向对象的分析和设计技巧,感觉自己跟老师的认识不太一样,但是总也拗不过来那个弯……并且总感觉自己的是对的,视频有一点误差……希望大家帮帮我,如果说是哪里的认识有错误请大牛们及时帮我指出来。{:soso_e154:}
        视频例子:
人在黑板上画圆——人对象使用圆对象的半径和圆心属性执行画方法


汽车司机刹车——司机对象调用汽车的刹车方法


人开门和关门——人对象调用门的开和关方法


一个小球从绳子的一端移动到另一端——小球对象依靠绳子对象的坐标方法执行移动方法


两块石头可以磨成一把石刀,石头刀可以砍树,砍成木材,木材可以做成椅子——石头对象调用另一个石头对象的磨擦方法,返回一个石头刀对象,石头刀对象接收树对象调用砍方法,返回木材对象,加工对象接收木材对象调用做椅子方法,返回椅子对象。


//注意:其实个人感觉这只是片面的考虑,其实这样想这个问题更好
——加工厂对象接收两块石头对象、一个树对象,然后调用了加工方法,返回一个椅子。//这样做的好处在于将复杂的流程化操作更进一步的封装成对象,因为最后的目的都是要做出一个椅子,而我们就把这个做椅子的过程封装成一个对象,至于怎么做,交给加工场对象执行。


红绿灯控制路上的汽车通过——马路容器装载了汽车对象,红绿灯控制了各个容器之间元素的交换。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

4 个回复

倒序浏览
用张老师的话说就是:谁拥有数据,谁就对外提供操作这些数据的方法。{:soso_e152:}
回复 使用道具 举报
加工厂对象接收两块石头对象、一个树对象,然后调用了加工方法,返回一个椅子。//这样做的好处在于将复杂的流程化操作更进一步的封装成对象,因为最后的目的都是要做出一个椅子,而我们就把这个做椅子的过程封装成一个对象,至于怎么做,交给加工场对象执行。

感觉这样说不是太合理,因为这题的本身是希望你对这个过程去做分析,不单单只是要结果。
还是觉得张老师讲的比较有道理。

加工厂接受两个石头,调用了加工方法返回石刀。然后石刀调用自己砍的方法接受一个树对象,返回木材。然后再又加工厂接受木材,调用加工方法得到椅子。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
这么跟你说吧,就那人开防盗门这个例子来说吧,人,防盗门,开门这个动作,对于门来说,他对外提供开这个方法,至于你是谁不管;所以说这个开门这个方法是属于
门的,反过来说,如果说开门这个动作是人的,那我就定义个对象,唐太宗,他有个开门的方法,可是那个时候还没有防盗门,他怎么开啊;
或者可以这样思考:如果门坏了,你 开不了门,是你的问题还是门的问题,当然是门的问题,说明开门这个方法是属于门的。。。
因为你并没有错。。。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
如果问题未解决,请继续追问,如果问题解决了,请将问题分类改为“已解决”,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马