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

信阳市网站建设_网站建设公司_Tailwind CSS_seo优化

单仁咨询建设网站,博客园和wordpress,nginx与WordPress,网站建设要用什么软件文章目录 一、定义#xff1a;迪米特法则二、模拟场景#xff1a;迪米特法则原则三、违背方案#xff1a;迪米特法则原则3.1 工程结构3.2 学生、老师、校长类3.2.1 学生类3.2.2 老师类3.2.3 校长类 3.3 单元测试 四、改善代码#xff1a;迪米特法则原则4.1 工程结构4.2 学生… 文章目录 一、定义迪米特法则二、模拟场景迪米特法则原则三、违背方案迪米特法则原则3.1 工程结构3.2 学生、老师、校长类3.2.1 学生类3.2.2 老师类3.2.3 校长类 3.3 单元测试 四、改善代码迪米特法则原则4.1 工程结构4.2 学生、老师、校长类4.2.1 学生类4.2.2 老师类4.2.3 校长类 4.3 单元测试 一、定义迪米特法则 迪米特法则(最少知道原则)Least Knowledge PrincipleLKP。 是指一个对象类对于其他对象类来说知道的越少越好。也就是说两个类之间不要有过多的耦合关系保持最少关联性。 迪米特法则有一句经典语录只和朋友通信不和陌生人说话。也就是说有内在关联的类要内聚没有直接关系的类要低耦合。 二、模拟场景迪米特法则原则 模拟学生、老师、校长之间关系的例子来说明迪米特法则。老师需要负责具体某一个学生的学习情况而校长会关心老师所在班级的总体成绩不会过问具体某一个学生的学习情况。 如果校长想知道一个班级的总分和平均分是应该找老师要还是跟每一个学生要再进行统计呢显然是应该找具体的班主任老师。 三、违背方案迪米特法则原则 3.1 工程结构 design-1.4-0 |——src|——main|--java|--com.lino.design|--Principal.java|--Student.java|--Teacher.java|——test|--java|--com.lino.design.test|--ApiTest.java3.2 学生、老师、校长类 3.2.1 学生类 Student.java package com.lino.design;/*** description: 学生*/ public class Student {/*** 姓名*/private String name;/*** 考试排名*/private int rank;/*** 考试分数*/private double grade;public Student() {}public Student(String name, int rank, double grade) {this.name name;this.rank rank;this.grade grade;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getRank() {return rank;}public void setRank(int rank) {this.rank rank;}public double getGrade() {return grade;}public void setGrade(double grade) {this.grade grade;} }定义一个学生信息类包括学生姓名、考试排名、总分。 3.2.2 老师类 Teacher.java package com.lino.design;import java.util.ArrayList; import java.util.List;/*** description: 老师*/ public class Teacher {/*** 老师名称*/private String name;/*** 班级*/private String clazz;/*** 学生列表*/private static ListStudent studentList;public Teacher() {}public Teacher(String name, String clazz) {this.name name;this.clazz clazz;}static {studentList new ArrayList();studentList.add(new Student(花花, 10, 589));studentList.add(new Student(豆豆, 54, 356));studentList.add(new Student(秋雅, 23, 439));studentList.add(new Student(皮皮, 2, 665));studentList.add(new Student(蛋蛋, 19, 502));}public static ListStudent getStudentList() {return studentList;}public String getName() {return name;}public String getClazz() {return clazz;} }定义老师类在老师类里初始化学生的信息以及提供基本的信息获取接口。 3.2.3 校长类 Principal.java package com.lino.design;import java.util.HashMap; import java.util.Map;/*** description: 校长*/ public class Principal {private Teacher teacher new Teacher(丽华, 3年1班);public MapString, Object queryClazzInfo(String clazzId) {// 获取班级信息学生总人数、总分、平均分int stuCount clazzStudentCount();double totalScore clazzTotalScore();double averageScore clazzAverageScore();// 组装对象实际业务开发会有对应的类MapString, Object mapObj new HashMap(16);mapObj.put(班级, teacher.getClazz());mapObj.put(老师, teacher.getName());mapObj.put(学生人数, stuCount);mapObj.put(班级总分数, totalScore);mapObj.put(班级平均分, averageScore);return mapObj;}/*** 平均分*/private double clazzAverageScore() {double totalScore 0;for (Student stu : Teacher.getStudentList()) {totalScore stu.getGrade();}return totalScore / Teacher.getStudentList().size();}/*** 总分*/private double clazzTotalScore() {double totalScore 0;for (Student stu : Teacher.getStudentList()) {totalScore stu.getGrade();}return totalScore;}/*** 总人数*/private int clazzStudentCount() {return Teacher.getStudentList().size();}}定义校长类校长管理全局并在校长类中获取学生人数、总分、平均分等。 3.3 单元测试 ApiTest.java Test public void test_Principal() {Principal principal new Principal();MapString, Object map principal.queryClazzInfo(3年1班);logger.info(查询结果{}, JSON.toJSONString(map)); }测试结果 13:49:37.477 [main] INFO com.lino.design.test.ApiTest - 查询结果{学生人数:5,班级平均分:510.2,班级:3年1班,老师:丽华,班级总分数:2551.0}以上就是通过校长管理所有学生老师只提供了非常简单的信息。虽然可以查询到结果但是违背了迪米特法则因为校长需要了解每个学生的情况。如果所有班级都让校长类统计代码就会变得非常臃肿也不易于维护和扩展。 四、改善代码迪米特法则原则 4.1 工程结构 design-1.4-1 |——src|——main|--java|--com.lino.design|--Principal.java|--Student.java|--Teacher.java|——test|--java|--com.lino.design.test|--ApiTest.java4.2 学生、老师、校长类 从以上的实现方式发现不该让校长直接管理学生校长应该管理老师由老师提供相应的学生信息查询服务。那么接下来就是把校长要的信息交给老师类去处理。 4.2.1 学生类 Student.java package com.lino.design;/*** description: 学生*/ public class Student {/*** 姓名*/private String name;/*** 考试排名*/private int rank;/*** 考试分数*/private double grade;public Student() {}public Student(String name, int rank, double grade) {this.name name;this.rank rank;this.grade grade;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getRank() {return rank;}public void setRank(int rank) {this.rank rank;}public double getGrade() {return grade;}public void setGrade(double grade) {this.grade grade;} }定义一个学生信息类包括学生姓名、考试排名、总分。 4.2.2 老师类 Teacher.java package com.lino.design;import java.util.ArrayList; import java.util.List;/*** description: 老师*/ public class Teacher {/*** 老师名称*/private String name;/*** 班级*/private String clazz;/*** 学生列表*/private static ListStudent studentList;public Teacher() {}public Teacher(String name, String clazz) {this.name name;this.clazz clazz;}static {studentList new ArrayList();studentList.add(new Student(花花, 10, 589));studentList.add(new Student(豆豆, 54, 356));studentList.add(new Student(秋雅, 23, 439));studentList.add(new Student(皮皮, 2, 665));studentList.add(new Student(蛋蛋, 19, 502));}/*** 平均分*/public double clazzAverageScore() {double totalScore 0;for (Student stu : studentList) {totalScore stu.getGrade();}return totalScore / studentList.size();}/*** 总分*/public double clazzTotalScore() {double totalScore 0;for (Student stu : studentList) {totalScore stu.getGrade();}return totalScore;}/*** 总人数*/public int clazzStudentCount() {return studentList.size();}public static ListStudent getStudentList() {return studentList;}public String getName() {return name;}public String getClazz() {return clazz;} }在使用迪米特法则后把原来违背迪米特法则的服务接口交给老师类处理。这样每一位老师都会提供相应的功能校长类只需要调用使用即可而不需要了解每一位学生的分数。 4.2.3 校长类 Principal.java package com.lino.design;import java.util.HashMap; import java.util.Map;/*** description: 校长*/ public class Principal {private Teacher teacher new Teacher(丽华, 3年1班);public MapString, Object queryClazzInfo(String clazzId) {// 获取班级信息学生总人数、总分、平均分int stuCount teacher.clazzStudentCount();double totalScore teacher.clazzTotalScore();double averageScore teacher.clazzAverageScore();// 组装对象实际业务开发会有对应的类MapString, Object mapObj new HashMap(16);mapObj.put(班级, teacher.getClazz());mapObj.put(老师, teacher.getName());mapObj.put(学生人数, stuCount);mapObj.put(班级总分数, totalScore);mapObj.put(班级平均分, averageScore);return mapObj;} }校长类直接调用老师类的接口并获取相应的信息。 4.3 单元测试 ApiTest.java Test public void test_Principal() {Principal principal new Principal();MapString, Object map principal.queryClazzInfo(3年1班);logger.info(查询结果{}, JSON.toJSONString(map)); }测试结果 13:49:37.477 [main] INFO com.lino.design.test.ApiTest - 查询结果{学生人数:5,班级平均分:510.2,班级:3年1班,老师:丽华,班级总分数:2551.0}
http://www.lebaoying.cn/news/45532.html

相关文章:

  • 做网站公司融资多少网站模板含数据库下载
  • 泛解析对网站的影响小程序制作二维码
  • 免费网站app哪个最好数据指数
  • 做网站都需要什么工具韩国做美食网站
  • 公司建设网站申请百度官网平台
  • 遥控器外壳设计网站推荐无代码开发
  • 珠海市网站开发公司在百度怎么开店卖货
  • 网站排名掉了怎么办贵阳网站制作贵阳网站建设哪家好
  • 可以做笔试面试题的网站模板做网站影响seo
  • 网站开发客户网站维护一般要几天
  • 广州网站开发外包哪家好网站建设百度云
  • 承接婚庆公司网站建设网站产品展示代码
  • 农业机械网站模板月嫂服务公司网站建设方案
  • 北京商场有哪些地方建站优化推广
  • 西乡建网站公司seo全网图文推广
  • 国际网站浏览器太原市建设银行网站首页
  • 以公司做网站触摸屏html网站
  • dedecms能做什么网站wordpress oa教程
  • 做网站找浩森宇特网站备案更改网站负责人
  • 淄博网站制作服务推广网站策划知识
  • 微信网页版二维码失效站长工具seo综合查询全面解析
  • 做刷单哪个网站找小白wordpress开发周期
  • 静安建设网站江门市住房和城乡建设部网站
  • 深圳凌 网站开发邯郸房产信息网官网
  • 网站报错500个人网站推广
  • 深圳注册公司流程和费用宁波seo行业公司推荐
  • 合肥做网站yuanmusyc011 wordpress主题
  • 邓州微网站建设wordpress 网上商城
  • flash网站设计作品专注建设高端网站
  • 网站服务器建设长沙银行网站建设