Java实现SOLID开闭原则时adminFaculty方法调用问题咨询
解决方案
你定义的adminFaculty方法需要接收一个IFaculty接口的实现类实例作为入参,直接传入ITFac或者MedFac的实例即可正常调用,修正后的Main类代码如下:
public class Main { public static void main(String[] args) { University u1 = new University(); // 传入IT学院实例,输出IT Fac Admin u1.adminFaculty(new ITFac()); // 传入医学院实例,输出Med Fac Admin u1.adminFaculty(new MedFac()); } }
输出结果
运行上述代码后控制台会打印:
IT Fac Admin Med Fac Admin
逻辑说明
你的代码本身已经符合开闭原则的要求:
- 新增学院类型时仅需要新建
IFaculty接口的实现类,不需要修改University类中已有的adminFaculty方法逻辑 - 调用时只需要传入对应实现类的实例,即可执行对应学院的管理逻辑
内容的提问来源于stack exchange,提问作者ShamaliF
相关产品推荐
相关产品推荐

