我有一个与网站api通信的软件。如何在不触及其中的代码的情况下增加其连接到各种其他api的功能?我认为最简单的方法是编写一个驻留在api和softwre之间的代理,将来自其他api的传入消息转换为该软件“理解”的基本api。 我应该在哪里查找有关使用c#实现此代理的更多信息? 谢谢你的帮助。
答案 0 :(得分:1)
嗯听起来像是你每天遇到的软件设计模式之一。我认为最符合您“代理”的是实际的桥梁。
Intent
- Decouple an abstraction from its implementation so that the two can vary independently.
- Publish interface in an inheritance hierarchy, and bury implementation in its own inheritance hierarchy.
- Beyond encapsulation, to insulation
Problem
“Hardening of the software arteries” has occurred by using subclassing of an abstract base class
to provide alternative implementations. This locks in compile-time binding between interface
and implementation. The abstraction and implementation cannot be independently extended or composed.
C#中的示例是http://sourcemaking.com/design_patterns/bridge/c%2523
但是,如果您只想要代理设计模式(imho不适合您的问题),请在此处列出:
编辑:好的,对于更通用的解决方案,请使用代理模式并查看代理的现有实现。你会在这个网站上找到答案问题的答案: