我正在尝试为我正在使用的第三方图形库编写一个包装器。我想让它足够通用,如果我决定将它移植到另一个平台或操作系统,我可以轻松切换库。
问题是我找不到足够好的设计。除了我正在使用的库之外,我还要遵循其他两个库的设计,以确保足够通用的设计。但似乎总有一些lib可以做其他人无法做到的事情。
您是否有任何关于如何使我的代码更具可移植性(轻松切换库)的提示?也许你可以建议一个过去适合你的图形包装设计。
答案 0 :(得分:0)
您是否有任何关于如何使我的代码更具可移植性(轻松切换库)的提示?
这很少有重大价值。
如果您认为必须确保可移植性,您有三种选择。
最少公共功能集。选择您认为可能想要使用的所有库。记下所有类,方法和属性,找到最小的公共子集。你必须考虑匹配所有各种名称,以确保你的语义尽可能接近。
这将为您提供必须在任何地方运行的最小图形实现。
然而,它将是功能不足的,你的应用程序(或包装器)将不得不做大量的编程,以统一的方式填补缺少的功能。
所有功能的联盟。选择您认为可能想要使用的所有库。记下所有类,方法和属性,并简单地将每个新东西添加到不断增长的功能列表中。您必须考虑匹配所有各种名称,以确保尽可能接近语义,以避免添加重复项。
这会产生问题,因为必须在所有其他库中实现一个库中的功能。这是很多编程。
你不是第一个有这种想法的人,并且意识到这真的很难做到。
那么后退是什么?
选择3。
选择您喜欢的图书馆。得到一些工作。
根据客户需求,确定最需要的备用库。创建必要的包装器,以便您的应用程序可以使用此库。
迭代这最后一步,直到你离开客户或者客户需求太低,以致客户解雇它们比支持客户更便宜。