在一份DELPHI资料中,看到这样两段话:“在多Form间,当存在这样的情形:Form1保存了某种数据,然后调用Form2显示该数据,请使用这样的通讯模式:Form1保存该数据到数据库中(可能通过Data Module的方法),然后直接调用Form2的某个方法去显示该数据,Form2的对应方法调用时只允许指定控制性信息(如记录PK),而不允许对Form2的控件属性直接操作。”“当Form1调用Form2时,不可以直接对Form2中的控件属性进行存取操作,而必须通过相应公开的方法进行。因为从对象的角度来说,Form1无须知道Form2是如何处理这条调用(消息)的,而只需要知道Form2提供了这种调用(消息处理机制)即可。这样实际上也加强了功能和界面的分离,因为这里更加强调功能,而不关系界面的具体控件。”请大侠指点如何理解并应用这两段话。谢谢。

解决方案 »

  1.   

    和它保持距离,避免发生关系.^_^
    //其实,一楼的老大说的很对,这种东东,要做写代码,尽量让Code复用性强.
     。。UP。。
      

  2.   

    〉〉,Form1无须知道Form2是如何处理这条调用(消息)的,而只需要知道Form2提供了这种调用(消>>息处理机制)即可。他的意思可能就是,如果form2要对form1的某些成员变量作修改,不要直接form1.xxx.xxx:=xxxx
    而是form1提供一个public的过程供form2调用比如老师上课对学生说回家帮妈妈做家务,具体家务是什么不用老师管,每个家庭自己决定
    form2里面调用 form1.作家务,也可能调用form3.作家务,而作家务在form1或form3里自己定义,可以扫地,可以擦窗等等,也可以今天扫地明天改为擦窗~~~~这个有点像面向对象的多态~~~