如本例学生成绩管理程序,学生成绩管理程序一般包含插入成绩、删除成绩、修改成绩、计算总分、计算均分、打印成绩信息、査询成绩信息等功能,如果将这些功能全部放到一个接口中显然不太合理,正确的做法是将它们分别放在输入模块、统计模块和打印模块等 3 个模块中,其类图如图所示:
源码如下:
public class ISPtest { public static void main(String[] args) { InputModule input =StuScoreList.getInputModule(); CountModule count =StuScoreList.getCountModule(); PrintModule print =StuScoreList.getPrintModule(); input.insert(); count.countTotalScore(); print.printStuInfo(); //print.delete(); } } //输入模块接口 interface InputModule { void insert(); void delete(); void modify(); } //统计模块接口 interface CountModule { void countTotalScore(); void countAverage(); } //打印模块接口 interface PrintModule { void printStuInfo(); void queryStuInfo(); } //实现类 class StuScoreList implements InputModule,CountModule,PrintModule { private StuScoreList(){} public static InputModule getInputModule() { return (InputModule)new StuScoreList(); } public static CountModule getCountModule() { return (CountModule)new StuScoreList(); } public static PrintModule getPrintModule() { return (PrintModule)new StuScoreList(); } public void insert() { System.out.println("输入模块的insert()方法被调用!"); } public void delete() { System.out.println("输入模块的delete()方法被调用!"); } public void modify() { System.out.println("输入模块的modify()方法被调用!"); } public void countTotalScore() { System.out.println("统计模块的countTotalScore()方法被调用!"); } public void countAverage() { System.out.println("统计模块的countAverage()方法被调用!"); } public void printStuInfo() { System.out.println("打印模块的printStuInfo()方法被调用!"); } public void queryStuInfo() { System.out.println("打印模块的queryStuInfo()方法被调用!"); } }
程序的运行结果如下:
输入模块的insert()方法被调用!
统计模块的countTotalScore()方法被调用!
打印模块的printStuInfo()方法被调用!
Stay hungry,stay foolish !
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2019-03-26 Git常用命令及场景