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

湖北城乡建设厅官方网站狼雨seo培训

湖北城乡建设厅官方网站,狼雨seo培训,长春网站建长春做网站,网站开发师培训子类替换类型码 是一种用于将类型码替换为子类。当代码使用类型码#xff08;通常是 int、string 或 enum#xff09;来表示对象的不同类别#xff0c;并且这些类别的行为有所不同时#xff0c;使用子类可以更加清晰地表达这些差异并减少复杂的条件判断。 一、什么时候使用…子类替换类型码 是一种用于将类型码替换为子类。当代码使用类型码通常是 int、string 或 enum来表示对象的不同类别并且这些类别的行为有所不同时使用子类可以更加清晰地表达这些差异并减少复杂的条件判断。 一、什么时候使用 当我们发现不同的类型码对应的对象行为有所不同并且在代码中使用 if-else 或 switch-case 语句来处理不同类型的行为。当类型码背后的行为变得越来越复杂处理逻辑变得难以维护。当每个类型码代表的类别可能拥有不同的属性或方法时。 二、优化步骤 识别类型码找到那些使用类型码来区分对象行为的地方通常是用来驱动 if-else 或 switch-case 语句。为每个类型创建子类为每个类型码创建一个对应的子类从原类继承。将行为移植到子类把与类型码相关的不同行为从原来的条件语句中提取出来移动到各个子类中。替换类型码在对象实例化的地方使用子类来代替类型码。 三、示例 假设我们有一个 Employee 类使用类型码 EmployeeType 来表示全职员工和兼职员工并根据类型码的不同计算奖金 public class Employee {public int EmployeeType { get; set; } // 1: Full-time, 2: Part-timepublic decimal GetBonus(){if (EmployeeType 1){return 1000;}else if (EmployeeType 2){return 500;}else{throw new ArgumentException(Invalid employee type.);}} }3.1 优化后的代码 可以为全职和兼职员工创建子类消除类型码并让每个子类自行实现 GetBonus 方法 public abstract class Employee {public abstract decimal GetBonus(); }public class FullTimeEmployee : Employee {public override decimal GetBonus(){return 1000;} }public class PartTimeEmployee : Employee {public override decimal GetBonus(){return 500;} }在客户端代码中实例化不同的员工子类 Employee fullTimeEmployee new FullTimeEmployee(); Employee partTimeEmployee new PartTimeEmployee();Console.WriteLine(fullTimeEmployee.GetBonus()); // 输出 1000 Console.WriteLine(partTimeEmployee.GetBonus()); // 输出 500四、优化的好处 消除条件判断不同类型的行为由各自的子类负责不再需要通过 if-else 或 switch-case 来判断类型简化了代码结构。增强可扩展性新增类型时只需创建新的子类不需要修改现有的代码从而遵循了开闭原则Open/Closed Principle。集中职责每个子类专门处理与它相关的行为职责更加单一符合单一职责原则Single Responsibility Principle。更具可读性和维护性每个子类的行为清晰且独立代码更易于理解和维护。 五、适用场景 多态场景当不同类型的对象有不同的行为表现时使用子类可以充分利用面向对象编程的多态性。复杂条件逻辑当处理类型码的条件判断过于复杂或冗长时将类型码替换为子类能够减少这些复杂的条件逻辑。未来类型扩展如果预期会增加新的类型码使用子类可以避免频繁修改现有代码。 六、示例扩展 如果不同员工类型除了奖金计算之外还涉及其他不同的业务逻辑比如工资计算、休假天数等用子类封装这些行为将使代码更加清晰。每个子类不仅仅是实现不同的 GetBonus还可以根据需要扩展其他专属行为。 public abstract class Employee {public abstract decimal GetBonus();public abstract int GetVacationDays(); }public class FullTimeEmployee : Employee {public override decimal GetBonus(){return 1000;}public override int GetVacationDays(){return 20;} }public class PartTimeEmployee : Employee {public override decimal GetBonus(){return 500;}public override int GetVacationDays(){return 10;} }使用子类替代类型码能够让代码结构更加简洁、易维护并且提升了扩展性。不同类型的对象通过子类来管理各自的行为充分利用了面向对象编程的多态特性从而减少复杂的条件判断和潜在错误。
http://www.dnsts.com.cn/news/117330.html

相关文章:

  • 《电子商务网站开发与管理》商城网站支付系统怎么做
  • 网站制作要素编程教育机构
  • 如何建设局域网网站word文档做网站
  • 代做土木工程专业毕业设计网站企业网站建设项目计划书
  • 海关企业信息查询网站wordpress管理插件下载
  • 网站群建设原则网站域名 空间
  • 网站的模块韩国手做配件网站
  • 上海免费网站建设品牌大庆市建设局网站
  • 聊城网站开发公司南宁企业网站设计
  • 圣诞网站怎么做做毕设的网站万
  • aso优化是什么意思优化seo搜索排名
  • 蕲春县住房和城乡建设局网站网络市场营销的概念
  • 自助建设手机网站如何自己编写一个程序
  • 电商法规定企业网站必须做3年买了域名之后怎么建设网站
  • 站长统计网站统计PHP 网站开发 入门
  • 全球热门网站排名菜单 wordpress
  • php网站开发cms网站优化推广排名
  • 网站个人信息页面布局优秀网页设计代码
  • 网站建设的行业手机应用市场下载安装到手机
  • 你学做网站学了多久建网站 免费
  • 网站建设需要学习哪些常州市教育基本建设与装备管理中心网站
  • 做网站购买虚拟主机送模板吗用源码做网站
  • 济南网站开发企业wordpress 多标签插件
  • 将电脑做的网站放到外网建设银行江苏官网招聘网站
  • 电子商务网站建设评估工具图片分享网站建设
  • wordpress首页添加站点统计显示临沂的各类网站建设
  • 政协机关网站建设wordpress ico更改
  • 关键词分析工具网站网站前端建设
  • 服务周到的上海网站建设长春seo外包平台
  • 网站建设综合训练报告网站建设单位是什么意思