• 设计模式之接口隔离原则示例


      如本例学生成绩管理程序,学生成绩管理程序一般包含插入成绩、删除成绩、修改成绩、计算总分、计算均分、打印成绩信息、査询成绩信息等功能,如果将这些功能全部放到一个接口中显然不太合理,正确的做法是将它们分别放在输入模块、统计模块和打印模块等 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()方法被调用!
  • 相关阅读:
    Web API 配置Help Page
    Web API Help Page Install WebApiTestClient 简单的测试客户端
    开始一个简单的ASP.NET Web API 2 (C#)
    一些有用的huginn Agent
    jsp填坑:找不到属性
    Oracle学习笔记
    阿里云服务器端配置TensorFlow & jupyter
    重启部署在阿里云上的huginn
    centos升级python2.7到3.6之后造成yum命令报错
    取消layUI中日期选择控件默认填充日期
  • 原文地址:https://www.cnblogs.com/jing99/p/12576787.html
Copyright © 2020-2023  润新知