可能重复:
Should you wrap 3rd party libraries that you adopt into your project?
我正在使用mail.jar,一个开放源码api来用java发送邮件。
我想知道是否应该像这样结束对我自己的框架的调用:
DedicatedFramework.sendMail(subject, body, recipientList);
然后,这个dedicatedFramework将对mail.jar进行必要的调用。
这样做的想法是,如果明天我用一个新版本取代mail.jar,这个版本不再推荐/改变方法,那么我就减少了耦合。
另一方面,我添加锅炉代码只是为了“隐藏”框架。
你们这些人怎么看待这件事?
当然,它可以是另一个框架,而不是邮件:图片管理,jdbcTemplate,GoogleCollections .
发布于 2011-12-21 16:00:47
No.
你知道明天你必须使用不同的邮件库吗?有可能吗?我怀疑。只是为了“也许有一天”的包装是最糟糕的YAGNI。
另一方面,如果您的sendMail()
方法做了一些本来可以在发送邮件的地方重复的事情,那么它不是包装器,而是有用的抽象。
发布于 2011-12-21 15:54:58
包起来。在可用的代码和如何使用代码之间架起一座桥梁,这将为您节省大量的样板代码,并在一些微小的更改时维护代码,但您必须在20个地方进行更改。
完全有可能这个问题还有更多的东西没有展示出来。我们的记忆限制是什么?我们能支持那些正在加载的额外类吗?我们必须像其他任何问题一样,通过包装来找出我们将面临的问题。
但是,如果没有任何内容说“我们不能包装因为____”,那么我建议您这样做。
发布于 2011-12-21 15:56:16
我会把它包起来。如果所有代码都在一个地方,那么查找和更改代码就容易多了。
https://stackoverflow.com/questions/8592556
复制相似问题