[英]IOC containers in NPM packages
在我們公司,我們有內部 SDK,有時在這些 SDK 中使用 inversify 可能很方便。
但是,我發現在不同的包之間管理所有這些 IOC 容器變得很困難。 例如,如果包A依賴於包B,那么您需要合並這兩個包的那些容器,然后應用程序C將導入包B和A,然后它必須再次合並所有這些容器。
所以我正在努力思考,如果在 SDK 中使用 IOC 容器是一種很好的方法。 我個人從未見過提供 IOC 容器的 SDK。
對此有何想法?
經過一番深思熟慮,以下是我對在 SDK 中使用 IOC 容器的想法。
它將 SDK 與 IOC 容器的實現相結合,這使得在不使用特定容器的項目中重用此 sdk 變得困難,比方說 inversify。
那么我們如何在沒有IOC容器的情況下實現DI/IOC呢? 當我們想到SDK時,我們應該想到:
如果我們在 SDK 內部使用 IOC 容器,然后將那個 ioc 容器提供給外界,我們是一種吐出所有內部組件,從而違反封裝。
我認為在沒有 IOC 容器的 SDK 中為子類提供實現是完全正常的,如果我們希望允許外部世界自定義該實現,那么我們提供的公共 API 應該允許這種自定義。
現在,當我通過這些鏡頭查看時,我認為 IOC 容器不應該出現在 SDK 中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.