Replace Type Code with Subclasses(以子类取代类型码)

有一个不可变的类型码,它会影响类的行为

public class Employee {static final int ENGINNER = 0;static final int SALESMAN = 1;static final int MANAGER = 2;private int type;public Employee(int type) {this.type = type;}public int getType() {return type;}
}

重构:以子类取代类型码

public class Employee {static final int ENGINNER = 0;static final int SALESMAN = 1;static final int MANAGER = 2;private int type;public Employee(int type) {this.type = type;}public static Employee create(int type) {switch(type) {case ENGINNER: return new Engineer();case SALESMAN: return new Salesman();case MANAGER: return new Manager();default:throw new IllegalArgumentException("Incorrect type code value.");}}public abstract int getType();
}public class Engineer extends Employee {public int getType() {return Employee.ENGINNER;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497294.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.net 中使用socket (c#)

前几天在网上看到关于使用socket 编写聊天程序的一个例子,学习了一下,网上的例子是VB.NET的,自己改写成了C#的 大同小异,只作为记录 : 发送端usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.Co…

Replace Type Code with State/Strategy(以State/Strategy取代类型码)

有一个类型码,它会影响类的行为,但你无法通过继承消除它 public class Employee {static final int ENGINNER 0;static final int SALESMAN 1;static final int MANAGER 2;private int type;// 月薪.private int montylySalary;// 佣金.private int c…

MSRA副院长周明博士:四大研究领域揭示自然语言技术的奥秘

来源:AI科技评论概要:自然语言理解处在认知智能最核心的地位。比尔盖茨曾说过,「语言理解是人工智能皇冠上的明珠」,沈向洋博士也说过「懂语言者得天下」。自然语言理解处在认知智能最核心的地位。它的进步会引导知识图谱的进步&a…

net中的调试javascript脚本

怎样对.net中的javascript脚本进行调试?第一步:在IE的“Internet设置”中选择“高级”——“安全”——“启用集成windows身份验证”(这一步很重要!!!)第二步:同样在“Internet设置”中把“禁止脚本调试”的勾去掉第三步:用调试模…

ajax将响应结果显示到iframe,JavaScript:iframe / Ajax / JSON

iframe在Ajax流行之前大量使用:iframe中的src属性指定的就是一个独立的页面url地址,iframe中呈现的就是这个页面的内容。通过改变src的值,我们就可以轻松的改变iframe中的内容(类似的,刷新验证码也是同样的手段):docum…

Decompose Conditional(分解条件表达式)

有一个复杂的 if-else 语句 if (date.before(SUMMER_START) || date.after(SUMMER_END)) {charge quantity * winterRate winterServiceCharge; } else {charge quantity * summerRate; } 重构: 从if-else 中分别提炼出独立函数 if (notSummer(date)) {charge…

2018 AI 产品趋势:喧嚣的追风者和静默的收割人

来源:36氪毫无疑问,在消费科技品领域,AI产品有泡沫。故事要从2014年说起。那一年底,亚马逊低调发布了智能音箱Echo,苹果发布了第一代Apple Watch智能手表。比起AI浪潮,那个时候大家谈论更多,是智…

基于Ajax的应用程序架构汇总(三)

3 服务器端:多种语言 3.1 跨平台异步的接口工具箱(5月2005年) CPAINT:http://cpaint.sourceforge.net/,是一真正的支持PHP和ASP/Vbscript的Ajax实现和JSRS(JavaScript远程脚本)实现。CPAINT提供给你需求的代码在后台实现AJAX和JSRS&#xff0…

ftp服务器需要什么系统,ftp服务器需要什么系统

ftp服务器需要什么系统 内容精选换一换单独购买的云硬盘为数据盘,可以在云硬盘列表中看到磁盘属性为“数据盘”,磁盘状态为“可用”。此时需要将该数据盘挂载给云服务器使用。系统盘必须随云服务器一同购买,并且会自动挂载,可以在…

3D 鼠标跟随脚本详解

请大家先看右边的动画演示。这个动画就是由 jimbob 制作的,您可以到这里来下载这个动画的原始文件。下面请看他的详细解释: If Frame Is Loaded ("end")Go to and Play ("start")End Frame Loaded initalise:Comment: Comment: 初始…

重磅 | MIT启动IQ计划:研究人类智能,让全世界的机构共同合作

作者:思颖概要:当地时间 2 月 1 日,MIT 宣布启动 MIT Intelligence Quest(智能探索)计划,该项计划旨在助力人类智能的基础研究,推动能造福于社会的技术工具的发展。据悉,该项声明由 …

risc系统服务器,精简的高端 解析四大RISC服务器处理器

也许您很难相信,作为我们今天仍在广泛使用的诸如“扣肉”之类的最新双核乃至是CPU(Center Prosessing Unit中央处理器),都是基于始创在上世纪60年代的CISC指令集,距今已有四十多年了。CISC是英文“Complex Instruction Set Computer”的缩写&…

Consolidate Conditional Expression(合并条件表达式)

有一系列条件测试&#xff0c;都得到相同结果 private double disabilityAmount() {if (seniority < 2) return 0;if (monthsDisabled > 2) return 0;if (isPartTime) return 0;// ... } 重构&#xff1a;将这些条件测试合并为一个条件表达式&#xff0c;并提炼为一个独…

梅露可物语虚拟服务器,【图片】【萌新】主界面的使用方法(零基础版)【梅露可物语日服吧】_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼那下面主要讲讲梅露可的货币们&#xff1a;1、 钻石&#xff1a;钻石的主要用途有三个。一、抽抽抽&#xff01;二、碎了这个钻来回复你的ap。三、战斗时候被人打败了有时可以用钻石复活。不过第三个基本是都不用的&#xff0c;因为…

北京发自动驾驶车辆考试大纲 难度堪比普通人考驾照

来源&#xff1a;新京报概要&#xff1a;自《加快推进自动驾驶车辆道路测试有关工作的指导意见》发布以来&#xff0c;北京进一步为自动驾驶车辆明确其性能测试与实际道路测试的“考试大纲”。自《加快推进自动驾驶车辆道路测试有关工作的指导意见》发布以来&#xff0c;北京进…

免费 Flash 留言板 -Powered by Kong

-----点击预览------新开窗口地址&#xff1a;http://iamkong.com/bord/bord.html重点*在FLASH load数据库数据&#xff0c;以及留言Post数据库这是FLASH与外面数据交互的方法之一 >点击下载{white白色}>点击下载{black 黑色}点击下载FLA源文件转载于:https://www.cnblog…

Consolidate Duplicate Conditional Fragments(合并重复的条件片段)

在条件表达式的每个分支上有相同的一段代码 if (isSpecialDeal()) {total price * 0.95;send(); } else {total price * 0.98;send(); } 重构&#xff1a;将这段重复代码搬移到条件表达式之外 if (isSpecialDeal()) {total price * 0.95; } else {total price * 0.98; }…

普华永道2030汽车产业报告 私家车真正Out了!

来源&#xff1a;智东西概要&#xff1a;随着新兴科技渗透汽车产业&#xff0c;电动化、智能化、共享化等趋势愈演愈烈。随着新兴科技渗透汽车产业&#xff0c;电动化、智能化、共享化等趋势愈演愈烈。科技企业、新造车企业杀入传统价值链&#xff0c;业界称之为汽车产业变革。…

C++学习之路 | PTA乙级—— 1001 害死人不偿命的(3n+1)猜想 (15分)(精简)

1001 害死人不偿命的(3n1)猜想 (15分) 卡拉兹(Callatz)猜想&#xff1a; 对任何一个正整数 n&#xff0c;如果它是偶数&#xff0c;那么把它砍掉一半&#xff1b;如果它是奇数&#xff0c;那么把 (3n1) 砍掉一半。这样一直反复砍下去&#xff0c;最后一定在某一步得到 n1。卡拉…

[转] TOUGH 的系列平面广告

转载于:https://www.cnblogs.com/temptation/archive/2006/08/09/471863.html