[讨论]关于一个设计方面的问题——主动对象和被动对象中的方法定义 ^_^,一般都是people中,司机继承了人,呵呵当然要会驾驶这个方法^_^(个人观点) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵呵,直接在驾驶这个方法中用了car类的对象做参数这样就用了联系 写在People里,把Cat作为参数传进去,然后调用cat.run()这是一个组合的应用~ 应该写在Car里好一些,如果写在People中的话,People类就得写Car如何run了,这样就有很高的耦合度!!还是让Car自己run吧~ “run如果写在Car类中,那People中怎么样去触发这个动作”People类中保存一个Car的实例变量和一个方法,在这个方法中调用Car对象的run()方法。 “run如果写在Car类中,那People中怎么样去触发这个动作”是呀,由People在需要调用Car.run()的时候调用,这样你需要的People的主动性就体现了Car如果People不调用,它自己不会run oo方法论认为:对象应该自己管理自己的行为。所以,认为run()这个方法应该放到Car类中。 "run"方法应该写在car中,people中也有一个run,people的run调用car的run. en谢谢,继续写在People里,把Cat作为参数传进去,然后调用cat.run()这是一个组合的应用~调用方法已经明白了--------------------------------------------------------------People类就得写Car如何run了People类中也不是写Car的run,只是说明People有开的能力,开什么不管,开车的话,传个车的参数进来,它只是开的动作的发出者,开的动作发出给车,然后车的发动机就自己起来了,车运行,如果要转向,也是People发出动作“转向”给车,车才转向。好比一个轮子,如果不给它任何外力,它是不会滚的,People给它个施加个动作“扔”,轮子才能滚动起来。宏观的说:有两种类,主动类、被动类主动类发出动作给被动类,被动类接受动作,然后做出相应的动作这样的情况在实际中应该是比较多的吧,不知道大家是怎么样处理这样的情况。处理方法当然有很多了,如果设计的烂一点,那很好解决的。还是想从中学习到一些东西,请大家指教,谢谢 另外,可以在People类中加一个drive()方法,当人开车时,就调用这个方法。在drive()方法中可以调用Car对象的run()方法。 把Car实现成抽象类,并在People类中保存一个Car类型的引用,在运行时就可以通过setCar()方法更改不同的Car,这样drive()就可以驾驶不同的Car了。 譬如People的动作走,因为人是自己走的,所以在People中加上walk的方法,很容易明白车的动作开,实际上是两个行为,先人给车一个动作,再车自己动起来同样是两个动作,因为是主动类和被动类的不同,导致方法的运转在流程上是不一样的怎么样更好的解决它们之间的不同? oo方法论认为:对象应该自己管理自己的行为。这句话,你仔细理解一下,实际上你的run应该由两部分组成,一个是人发出 "开车"这个动作,和车"移动"这两个行为。所以需要做的是,在people里有一个方法,是run(),这个run是指人能发出开车的动作,不管开的是卡车还是轿车在car里,这是个具体类,应该有一个move();代表能移动,所以当我要开卡车的时候,只要把car做为一个参数穿给people的run(),车子就移动了。这是我个人的理解。 我觉得是,car的run是一种状态,而不要表示为一种动作,因为car的run是由人来驱动的,不知道我这种看法是否正确?请高手指点 执行和暂停 不同宽度数组间强制转换的问题【scjp】 帮帮我!!! 我是新人啊 谢谢了 java连接数据库的问题。问题解决了一定揭贴。 Java中有时间输入控件吗? 可选字段的正则表达式写法 高人指点几行代码不难,只是我不懂 关于document的问题 最最初级的问题,刚学java,不知道用什么编辑器好?? 谁能给我 Thinking in Java 2 简体中文 PDF版教材? 请问怎样使程序间段执行 关于公钥算法的一点疑惑. 高分!——用java实现关闭其他程序(进程)的问题
这是一个组合的应用~
还是让Car自己run吧~
调用Car对象的run()方法。
Car如果People不调用,它自己不会run
这个方法应该放到Car类中。
谢谢,继续
写在People里,把Cat作为参数传进去,然后调用cat.run()
这是一个组合的应用~调用方法已经明白了--------------------------------------------------------------
People类就得写Car如何run了People类中也不是写Car的run,只是说明People有开的能力,开什么不管,开车的话,传个车的参数进来,它只是开的动作的发出者,开的动作发出给车,然后车的发动机就自己起来了,车运行,如果要转向,也是People发出动作“转向”给车,车才转向。好比一个轮子,如果不给它任何外力,它是不会滚的,People给它个施加个动作“扔”,轮子才能滚动起来。宏观的说:有两种类,主动类、被动类
主动类发出动作给被动类,被动类接受动作,然后做出相应的动作这样的情况在实际中应该是比较多的吧,不知道大家是怎么样处理这样的情况。处理方法当然有很多了,如果设计的烂一点,那很好解决的。还是想从中学习到一些东西,请大家指教,谢谢
这个方法。在drive()方法中可以调用Car对象的run()方法。
通过setCar()方法更改不同的Car,这样drive()就可以驾驶不同的Car了。
People的动作走,因为人是自己走的,所以在People中加上walk的方法,很容易明白车的动作开,实际上是两个行为,先人给车一个动作,再车自己动起来同样是两个动作,因为是主动类和被动类的不同,导致方法的运转在流程上是不一样的
怎么样更好的解决它们之间的不同?
一个是人发出 "开车"这个动作,和车"移动"这两个行为。
所以需要做的是,
在people里有一个方法,是run(),这个run是指人能发出开车的动作,不管开的是卡车还是轿车
在car里,这是个具体类,应该有一个move();代表能移动,所以当我要开卡车的时候,只要把car做为一个参数穿给people的run(),车子就移动了。这是我个人的理解。
不知道我这种看法是否正确?请高手指点