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

php网站后台建设/防疫优化措施

php网站后台建设,防疫优化措施,今天最新社会新闻,可以做免费推广的网站吗A class should have only one reason to change. 单一职责就是说,不要所有的东西都堆到一起,按照他们的职责边界拆分到不同的模块/类中。将所有东西堆放在一起容易“牵一发而动全身”,修改一处需要回归测试全部的功能。 违背单一职责原则的示…

A class should have only one reason to change.

单一职责就是说,不要所有的东西都堆到一起,按照他们的职责边界拆分到不同的模块/类中。将所有东西堆放在一起容易“牵一发而动全身”,修改一处需要回归测试全部的功能。

违背单一职责原则的示例

import java.util.Random;class Employee {public String firstName, lastName, empId;public double experienceInYears;public Employee(String firstName, String lastName, double experience) {this.firstName = firstName;this.lastName = lastName;this.experienceInYears = experience;}// 打印基础信息public void displayEmpDetail(){System.out.println("The employee name: " + lastName+","+firstName);System.out.println("This employee has " + experienceInYears +" years of experience.");}// 检查是否老员工public String checkSeniority(double experienceInYears){return experienceInYears > 5 ?"senior":"junior";}// 生成员工号public String generateEmpId(String empFirstName){int random = new Random().nextInt(1000);empId = empFirstName.substring(0,1)+random;return empId;}
}
class Client {public static void main(String[] args) {System.out.println("*** A demo without SRP.***");Employee robin = new Employee("Robin", "Smith", 7.5);showEmpDetail(robin);System.out.println("\n*******\n");Employee kevin = new Employee("Kevin", "Proctor", 3.2);showEmpDetail(kevin);}private static void showEmpDetail(Employee emp) {emp.displayEmpDetail();System.out.println("The employee id: "+ emp.generateEmpId(emp.firstName));System.out.println("This employee is a " + emp.checkSeniority(emp.experienceInYears)+ " employee.");}}

我们发现,在Employee类中,既声明了常规的属性,又提供了三个方法。其实打印基础信息这个方法还好,放置在Employee类中还算合理。但是对于生成员工号、判断是否老员工的方法放置在Employee类中就不是特别合理了:

        1. 生成员工号的算法可能存在着迭代的需求。

        2. 判断是否老员工的规则可能随时会发生变化。

单一职责化拆解

class Employee {public String firstName, lastName, empId;public double experienceInYears;public Employee(String firstName, String lastName, double experience) {this.firstName = firstName;this.lastName = lastName;this.experienceInYears = experience;}// 打印基础信息public void displayEmpDetail(){System.out.println("The employee name: "+lastName+","+firstName);System.out.println("This employee has "+ experienceInYears+" years of experience.");}}
import java.util.Random;class EmployeeIdGenerator {String empId;// 员工号生成public String generateEmpId(String empFirstName) {int random = new Random().nextInt(1000);empId = empFirstName.substring(0, 1) + random;return empId;}
}
class SeniorityChecker {// 检查是否老员工public String checkSeniority(double experienceInYears){return experienceInYears > 5 ?"senior":"junior";}}
class Client {public static void main(String[] args) {System.out.println("*** A demo that follows the SRP.***");Employee robin = new Employee("Robin", "Smith", 7.5);showEmpDetail(robin);System.out.println("\n*******\n");Employee kevin = new Employee("Kevin", "Proctor", 3.2);showEmpDetail(kevin);}private static void showEmpDetail(Employee emp) {// Display employee detailemp.displayEmpDetail();// Generate the IDEmployeeIdGenerator idGenerator = new EmployeeIdGenerator();String empId = idGenerator.generateEmpId(emp.firstName);System.out.println("The employee id: " + empId);// Check the seniority levelSeniorityChecker seniorityChecker = new SeniorityChecker();System.out.println("This employee is a " + seniorityChecker.checkSeniority(emp.experienceInYears) + " employee.");}
}

在Employee类中,声明了常规的属性,提供了打印基础信息的方法。提出生成员工号、判断是否老员工的方法到不同的职责类中。这样,在后续的迭代中,即便是修改老员工的判断规则,或者生成员工号的算法,也不会对Employee类造成太大的影响。

http://www.lbrq.cn/news/1480285.html

相关文章:

  • 网站里怎样做物流跟踪功能/推广软件
  • 广州网站建设出售/滴滴友链
  • 手机网站设计公司哪家专业/优化网站技术
  • 黄石网站建设公司/域名大全
  • 什么是做自己的网站/百家联盟推广部电话多少
  • 网站开发日志文档/黑帽seo技术论坛
  • html5培训网站模板/百度网盘搜索引擎
  • 做这种灰色的网站犯法/如何做网页
  • 类似源码之家的网站/百度做推广一般要多少钱
  • 如何做英文网站外链/深圳网络营销怎么推广
  • 广州一建筑外墙脚手架坍塌/网站排名怎么优化
  • b2b网站有哪些模块/宁波建站模板系统
  • 做图素材网站/网站运营方案
  • 磁力天堂/天津百度搜索排名优化
  • 网站大数据怎么做/群站优化之链轮模式
  • 免费博客网站/开发网站需要多少钱
  • 网站建设行业研究/百度关键词规划师
  • 做网站的技术支持/百度导航下载安装手机导航
  • 宁波网站建设公司地址/视频号视频怎么看下载链接
  • 上海做网站的哪家好/搭建网站平台
  • 建站一条龙/互联网营销师是干什么
  • 绵阳手机网站制作/网站内部seo
  • 杭州网站建设宣盟网络/职业教育培训机构排名前十
  • 事业单位网站建设计划/电商代运营一般收多少服务费
  • 做资讯网站需要哪些资质/百度推广总部电话
  • 如何更改wordpress语言/优化网站的步骤
  • 济南做兼职网站/系统优化大师下载
  • 厦门网站建设680/sem竞价
  • wordpress 两栏主题/百度词条优化工作
  • 做网站需要注册哪类商标/整合网络营销是什么
  • 【12】大恒相机SDK C#开发 ——多相机开发,枚举所有相机,并按配置文件中的相机顺序 将所有相机加入设备列表,以便于对每个指定的相机操作
  • Apache FOP实践——pdf模板引擎
  • 三十二、【Linux网站服务器】搭建httpd服务器演示虚拟主机配置、网页重定向功能
  • 【Rust多进程】征服CPU的艺术:Rust多进程实战指南
  • 大语言模型(LLM)技术架构与工程实践:从原理到部署
  • Java:为什么需要通配符捕获(wildcard capture)