接口隔离原则如何应用于便利/辅助方法?例如:
我想创建一个代表业务合作伙伴的界面。我需要的最低限度是一个 setter 和一个 getter 方法,它们可以设置或获取整个合作伙伴列表:
Interface Partners {
method getList();
method setList();
}
我还想要一个 contains() 方法来告诉我某个人是否包含在合作伙伴列表中。我认为这是一个帮助或便利方法,因为它所做的一切都是调用 getPartners() 然后检查给定的人是否在该列表中。
我对接口隔离原则的理解是我应该将我的 contains() 方法分离到一个单独的接口中,因为有人可能想要实现我的 Partners 接口而不为这个不必要的辅助方法提供实现。在我的示例中,这没什么大不了的,但是辅助方法的列表会很快变长(addPartner、addPartnerByID、addPartnerByUserid 等),所以这是一个实际问题。
我担心的是,我发现很难为一个接口选择一个名称来保存我的 contains() 方法,这听起来并不麻烦,而且我认为任何时候你在命名某些东西时遇到这么多麻烦,这是一个危险信号你的设计有问题。拥有一个名为 PartnersSupportingSetInclusionChecks 的接口似乎并不合适,拥有一个仅名为 PartnerHelperMethods 的接口似乎也不好。
如何将接口隔离原则应用于此类方法?