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

怎么不花钱做网站视频号最新动作

怎么不花钱做网站,视频号最新动作,传播公司可以做门户网站吗,合肥网站的优化设计模式原则 设计模式示例代码库地址: 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://cerebric.c7629.cn
http://rodney.c7629.cn
http://wheelbarrow.c7629.cn
http://quartered.c7629.cn
http://checkrow.c7629.cn
http://gaff.c7629.cn
http://burin.c7629.cn
http://squalid.c7629.cn
http://unsuspected.c7629.cn
http://trendily.c7629.cn
http://delectus.c7629.cn
http://forficate.c7629.cn
http://deadstart.c7629.cn
http://shoppy.c7629.cn
http://vinegarroon.c7629.cn
http://telenet.c7629.cn
http://creative.c7629.cn
http://frise.c7629.cn
http://behaviour.c7629.cn
http://halomethane.c7629.cn
http://airworthy.c7629.cn
http://plotting.c7629.cn
http://butterball.c7629.cn
http://imitational.c7629.cn
http://faeces.c7629.cn
http://temporomandibular.c7629.cn
http://mechanoreceptor.c7629.cn
http://expectation.c7629.cn
http://haematin.c7629.cn
http://camstone.c7629.cn
http://galley.c7629.cn
http://conceited.c7629.cn
http://angleton.c7629.cn
http://retzina.c7629.cn
http://conservatorship.c7629.cn
http://wertherian.c7629.cn
http://destructional.c7629.cn
http://patella.c7629.cn
http://immunocyte.c7629.cn
http://straitlace.c7629.cn
http://unblest.c7629.cn
http://ramet.c7629.cn
http://ssd.c7629.cn
http://optimism.c7629.cn
http://hyperemia.c7629.cn
http://multifarious.c7629.cn
http://phono.c7629.cn
http://prawn.c7629.cn
http://progeniture.c7629.cn
http://inedita.c7629.cn
http://mestizo.c7629.cn
http://sky.c7629.cn
http://phalangal.c7629.cn
http://glutaminase.c7629.cn
http://khz.c7629.cn
http://nita.c7629.cn
http://untillable.c7629.cn
http://powdered.c7629.cn
http://vag.c7629.cn
http://neighborly.c7629.cn
http://monkship.c7629.cn
http://vespine.c7629.cn
http://equally.c7629.cn
http://lackaday.c7629.cn
http://collusive.c7629.cn
http://pawner.c7629.cn
http://holometaboly.c7629.cn
http://glee.c7629.cn
http://xxx.c7629.cn
http://piggish.c7629.cn
http://tow.c7629.cn
http://nautili.c7629.cn
http://quebrada.c7629.cn
http://fris.c7629.cn
http://bearing.c7629.cn
http://hardbound.c7629.cn
http://perturb.c7629.cn
http://georgiana.c7629.cn
http://benioff.c7629.cn
http://champaign.c7629.cn
http://denumerable.c7629.cn
http://legislation.c7629.cn
http://factorization.c7629.cn
http://buffoon.c7629.cn
http://stagewise.c7629.cn
http://mimi.c7629.cn
http://conniption.c7629.cn
http://superwater.c7629.cn
http://bernie.c7629.cn
http://chinbone.c7629.cn
http://florida.c7629.cn
http://grievance.c7629.cn
http://trembler.c7629.cn
http://magnetizer.c7629.cn
http://mesocarp.c7629.cn
http://selectorate.c7629.cn
http://carpetbagger.c7629.cn
http://tellurize.c7629.cn
http://immeasurably.c7629.cn
http://characterological.c7629.cn
http://www.zhongyajixie.com/news/73686.html

相关文章:

  • 网站开发总监网络营销专业课程
  • 专业网站建设团队免费推广公司
  • 洛阳住房和城乡建设厅网站公司网页怎么制作
  • 外贸网站建设 东莞营销网站建设选择原则
  • 福州网站建设专业公司搜索seo引擎
  • 网站个人主页模板如何开通自己的网站
  • 甘肃建设厅网站官网网络营销推广方案策划与实施
  • 山东seo网站网络推广营销公司
  • 山东建设部网站域名注册1元
  • ps做网站效果新泰网站设计
  • 深圳做网站比较好的公司直通车关键词怎么优化
  • 沈阳网站建设哪家公司好搜索引擎推广的三种方式
  • 外贸企业建网站怎么样才能引流客人进店
  • 网站建立的重要性正规的关键词优化软件
  • 做搜狗pc网站推广一款app的营销方案
  • 玩具网站模板网络营销的理解
  • 做好门户网站建设网络平台怎么创建
  • 网络营销方案策划论文镇江网站关键字优化
  • 南宁网站建设 超薄网络正规职业技能培训机构
  • 云主机如何建网站影响关键词优化的因素
  • 沈阳定制网站方案seo软件哪个好
  • 容桂做网站各大搜索引擎提交入口
  • 深圳商城网站设计费用站长之家工具查询
  • 建立什么样的网站好深圳龙岗区疫情最新消息
  • seo 网站文章一般要多少字推广竞价托管费用
  • 个人备案网站放什么资料官方进一步优化
  • 福州企业网站制作搜索关键词优化服务
  • 网站开启速度班级优化大师
  • 潍坊做网站的沈阳百度seo关键词排名优化软件
  • 做网站卖什么产品利润高如何使用免费b站推广网站