当前位置: 首页 > news >正文

怎么不花钱做网站百度指数1000搜索量有多少

怎么不花钱做网站,百度指数1000搜索量有多少,做网站得做多少网页,做电子商务系统网站建设设计模式原则 设计模式示例代码库地址: https://gitee.com/Jasonpupil/designPatterns 接口隔离原则 要求程序员尽量将臃肿庞大的接口拆分为更小的和更具体的接口,让接口中只包含客户感兴趣的方法接口隔离原则的目标是降低类或模块之间的耦合度&…

设计模式原则

设计模式示例代码库地址:

https://gitee.com/Jasonpupil/designPatterns

接口隔离原则

  • 要求程序员尽量将臃肿庞大的接口拆分为更小的和更具体的接口,让接口中只包含客户感兴趣的方法
  • 接口隔离原则的目标是降低类或模块之间的耦合度,提高代码的可维护性、可扩展性和可测试性。
  • 通过使用多个专门的接口,我们可以避免类或模块之间出现不必要的依赖关系,减少对无用接口的实现或调用,从而降低了修改和维护的成本。

模式场景:学校管理系统,不同角色的功能

  • 接口隔离原则替换前:定义一个角色接口,包含几个功能:成绩查询、成绩上传和教师管理,所有角色都实现了这个接口,但是不同角色的权限不同,只能使用对应权限的功能,比如:学生只能成绩查询,而老师就可以成绩查询和成绩上传。如果都实现同一个接口,还需要进行每个功能进行隔离比较麻烦。
  • 接口隔离原则替换后:把角色功能接口根据每个功能进行拆分,角色类实现对应权限的功能接口,这样就简化了角色类里实现功能隔离。

接口隔离原则替换前示例代码:功能没有具体实现,主要看逻辑是怎么样

角色功能接口:
/*** @Description: 角色接口* @Author: pupil* @Date: 2024/06/26 下午 11:29*/
public interface Role {/*** 成绩查询* @param userId 学生id* @return*/String scoreInquiry(long userId);/*** 成绩上传* @param userId 学生id* @param grades 成绩*/void gradeUpload(long userId, Map<String,Double> grades);/*** 教师管理* @param teacherId 教师id*/void teacherManagement(long teacherId);}
校长类:
/*** @Description: 校长,功能没有具体实现* @Author: pupil* @Date: 2024/06/26 下午 11:30*/
public class Principal implements Role {private Logger logger = LoggerFactory.getLogger(Principal.class);@Overridepublic String scoreInquiry(long userId) {logger.info("学生{}:成绩是....",userId);return null;}@Overridepublic void gradeUpload(long userId, Map<String, Double> grades) {// 无法实现该功能}@Overridepublic void teacherManagement(long teacherId) {logger.info("教师{}: 进行管理",teacherId);}
}
教师类:
/*** @Description: 教师* @Author: pupil* @Date: 2024/06/26 下午 11:31*/
public class Teacher implements Role {private Logger logger = LoggerFactory.getLogger(Teacher.class);@Overridepublic String scoreInquiry(long userId) {logger.info("学生{}:成绩是....",userId);return null;}@Overridepublic void gradeUpload(long userId, Map<String, Double> grades) {logger.info("学生{}:成绩上传为{}",userId,grades);}@Overridepublic void teacherManagement(long teacherId) {// 无法实现该功能}
}
学生类:
/*** @Description: 学生* @Author: pupil* @Date: 2024/06/26 下午 11:31*/
public class Student implements Role {private Logger logger = LoggerFactory.getLogger(Student.class);@Overridepublic String scoreInquiry(long userId) {logger.info("学生{}:成绩是....",userId);return null;}@Overridepublic void gradeUpload(long userId, Map<String, Double> grades) {// 无法实现该功能}@Overridepublic void teacherManagement(long teacherId) {// 无法实现该功能}
}

接口隔离原则替换后示例代码:功能没有具体实现,主要看逻辑是怎么样

成绩查询功能接口:
/*** @Description: 成绩查询功能接口* @Author: pupil* @Date: 2024/06/26 下午 11:56*/
public interface ScoreInquiry {/*** 成绩查询* @param userId 学生id* @return*/String scoreInquiry(long userId);
}
成绩上传功能接口:
/*** @Description: 成绩上传功能接口* @Author: pupil* @Date: 2024/06/26 下午 11:56*/
public interface GradeUpload {/*** 成绩上传* @param userId 学生id* @param grades 成绩*/void gradeUpload(long userId, Map<String,Double> grades);
}
教师管理功能接口:
/*** @Description: 教师管理功能接口* @Author: pupil* @Date: 2024/06/27 上午 12:01*/
public interface TeacherManagement {/*** 教师管理* @param teacherId 教师id*/void teacherManagement(long teacherId);
}
校长类:
/*** @Description: 校长,功能没有具体实现* @Author: pupil* @Date: 2024/06/26 下午 11:30*/
public class Principal implements ScoreInquiry, TeacherManagement {private Logger logger = LoggerFactory.getLogger(Principal.class);@Overridepublic String scoreInquiry(long userId) {logger.info("学生{}:成绩是....", userId);return null;}@Overridepublic void teacherManagement(long teacherId) {logger.info("教师{}: 进行管理", teacherId);}}
教师类:
/*** @Description: 教师,功能没有具体实现* @Author: pupil* @Date: 2024/06/26 下午 11:31*/
public class Teacher implements ScoreInquiry, GradeUpload {private Logger logger = LoggerFactory.getLogger(Teacher.class);@Overridepublic String scoreInquiry(long userId) {logger.info("学生{}:成绩是....",userId);return null;}@Overridepublic void gradeUpload(long userId, Map<String, Double> grades) {logger.info("学生{}:成绩上传为{}",userId,grades);}}
学生类:
/*** @Description: 学生,功能没有具体实现* @Author: pupil* @Date: 2024/06/26 下午 11:31*/
public class Student implements ScoreInquiry {private Logger logger = LoggerFactory.getLogger(Student.class);@Overridepublic String scoreInquiry(long userId) {logger.info("学生{}:成绩是....",userId);return null;}
}

根据接口隔离原则的示例类图:

在这里插入图片描述

http://www.ds6.com.cn/news/61576.html

相关文章:

  • 广西南宁电商网站建设营销方案策划书
  • 管理公司网站建设友情链接交换的作用在于
  • 有需求或做任务赚钱的网站么腾讯云域名注册
  • 陕西网站建设电话网站推广的技巧
  • 怎么在百度建设网站培训机构招生7个方法
  • 专做网站的公司如何线上推广自己产品
  • 网站建设合同纠纷管辖上海网站建设服务
  • 汽车4s网站设计单页网站怎么优化
  • 广州建网站加备案南京网络建站公司
  • 百度软件应用市场百度自然搜索排名优化
  • 网站开发模板带css样式信息流广告投放渠道
  • 专业做婚庆的网站有哪些谷歌chrome安卓版
  • 网站中怎么做下载链接企业建站流程
  • 个人网站建设素材比较好的网站建设网站
  • 做汽配的网站seo推广优化外包公司
  • 网站做的不好使青岛seo服务哪家好
  • 自己的电脑做网站云存储什么都不懂能去干运营吗
  • 番禺网站优化百度快速排名软件下载
  • 网站改版的方式大致为seo日常工作
  • 常州网站建设公司报价数据分析软件工具有哪些
  • 五金网站制作seo推广软件排行榜
  • 搜索引擎营销sem丹东网站seo
  • 成都网站建设好多钱长春网站建设公司哪家好
  • 全屋定制官网长沙百度网站推广优化
  • 千灯做网站西安网站建设推广
  • 网站开发需求网网络营销企业是什么
  • 旅游网站模块分类seo的中文意思
  • 企业微信网站怎么建设windows优化大师手机版
  • led灯网站策划书福建网络seo关键词优化教程
  • 企业网站制作流程图seo 知乎