|
|
发表于 2008-9-22 15:18:00
|
显示全部楼层
Re:经验与教训----在架构时不要沉迷于OO;在实现时灵活选
有没有 "主谓兵"是看自己设计的结果,而不是指所有的程序员都在这样做; OO语言特性只能是工具,你要不用人类的语言设计接口自然也就没 "主谓兵"了. 工具在于灵活运用,思想也就不一样了,仁者见仁. 我举例子只是想说明OO思想运用的当可以是程序语言接近人类语言. instemast拿出的代码
PlayerManager.LovesPlayer(I, you); //这句在确定I和you的关系,实现上很可能是个中介者模式,也就是说
//在理解上我可以认为这样说 PlayerManager确定了I和you的关系. 那好,主语是PlayerManager,谓语是确定或 者是存储, I和you的是定语,关系是兵语
Destination.Append( MyString ); //Destination是主语 Append是谓语 MyString是兵语,这还不是?
MyString.AppendTo( Destination );//此句同理
你看看举的例子就逃不了这模式,因为你是个人,OO语言是人类发明的,他就是人类语言相比于C style它肯能表现人类的语言句法,或者说更能良好的表现人类的语言. 至于你能举出PlayerManager.LovesPlayer(I, you);这句那是因为人类是通过语言在描述世界,而世界有的是很抽象的,就好比 "关系",我完全可以把PlayerManager.LovesPlayer(I, you);一句改为 PlayerManager.ConfirmRelation (I, you);
|
|