You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 14:54:00