none
C#通讯接口 RRS feed

  • 问题

  • 问题是这样的:本身我这边已经有了一个软件,现在要做一个通讯接口程序跟这个软件进行交互。

    在软件上操作后,产生的命令或者数据保存到一个txt文件中,现在我要做的就是做 一个通讯接口程序,根据这个txt文件中不同的命令,做出相应的操作(比如修改储存数据库内容)。

    我自己现在是这样做的:读取txt文件中的内容,根据不同内容,写出不同的方法进行操作。感觉这样写出来的程序不是很理想。

    所以现在我想请教大家有没有更好的方法。使的这个接口程序更具高聚合,低耦合,更好的灵活性。

     

    2010年6月19日 2:12

答案

  • 灵活的前提是会有变化,所以先要看变化的部分是什么,

    如果 是 命令txt中的命令字 跟 执行方法 的对应关系有变化,这样可以采用命令模式。

    以前每个命令字对应一个方法

    现在是每个命令字对应一个命令类。

    如果有新命令只要新增一个新的命令类,并更改命令调度类的映射入口就可以了

    可参看http://www.cnblogs.com/callwangxiang/archive/2008/10/18/1313865.html

    第19个命令模式的代码示例。

     

    • 已标记为答案 Csharpzero 2010年6月21日 2:12
    2010年6月19日 6:33

全部回复

  • 你指的是两个exe通讯的问题吧,

    但是需求不是特别明确,比如已有软件操作命令后要不要有数据和操作结果返回。

    通讯接口程序和已有程序运行实例是几比几的比率等。

    你既然想到用txt,我推断实时性要求也不是很高。可能是1:1的单机版,还可能是不要有操作结果返回。

    如果是这样,txt文件传递是最简单易行的。接口程序起一个线程不停的读新入栈的命令,执行即可,不管结果。

    建议

    单机内exe的话可以用消息通讯

    网络通讯的话用remoting

    <script type="text/javascript"> if ($ != jQuery) { $ = jQuery.noConflict(); } </script>

     

    2010年6月19日 5:29
  • 你指的是两个exe通讯的问题吧,

    但是需求不是特别明确,比如已有软件操作命令后要不要有数据和操作结果返回。

    通讯接口程序和已有程序运行实例是几比几的比率等。

    你既然想到用txt,我推断实时性要求也不是很高。可能是1:1的单机版,还可能是不要有操作结果返回。

    如果是这样,txt文件传递是最简单易行的。接口程序起一个线程不停的读新入栈的命令,执行即可,不管结果。

    建议

    单机内exe的话可以用消息通讯

    网络通讯的话用remoting

    <script type="text/javascript"> if ($ != jQuery) { $ = jQuery.noConflict(); } </script>

     


    跟你说的差不多.是用消息通讯.

    我是想: 读取txt文件中的内容(读取这一步我觉得没什么问题),根据不同内容,写出不同的方法进行操作(这里如果不直接用方法,通用其它(比如自定义事件或者 其它什么),会不会使的程序更具灵活性)

    2010年6月19日 5:37
  • 灵活的前提是会有变化,所以先要看变化的部分是什么,

    如果 是 命令txt中的命令字 跟 执行方法 的对应关系有变化,这样可以采用命令模式。

    以前每个命令字对应一个方法

    现在是每个命令字对应一个命令类。

    如果有新命令只要新增一个新的命令类,并更改命令调度类的映射入口就可以了

    可参看http://www.cnblogs.com/callwangxiang/archive/2008/10/18/1313865.html

    第19个命令模式的代码示例。

     

    • 已标记为答案 Csharpzero 2010年6月21日 2:12
    2010年6月19日 6:33
  • 灵活的前提是会有变化,所以先要看变化的部分是什么,

    如果 是 命令txt中的命令字 跟 执行方法 的对应关系有变化,这样可以采用命令模式。

    以前每个命令字对应一个方法

    现在是每个命令字对应一个命令类。

    如果有新命令只要新增一个新的命令类,并更改命令调度类的映射入口就可以了

    可参看http://www.cnblogs.com/callwangxiang/archive/2008/10/18/1313865.html

    第19个命令模式的代码示例。

     


    谢谢了! 不过网上都没有  第19个命令模式

    看来要去买啊.

    2010年6月21日 2:12
  • 不客气, 就是 命令模式 ,搜一下,网上到处都是
    2010年6月22日 16:05