代码中经常会出现枚举性的变量,比如血型、性别之类。
以血型为例:
class Blood {
public final static int o = 0 ;
public final static int A = 1 ;
public final static int B = 2 ;
public final static int AB = 3 ;
private Blood();
}
class person {
private int _blood;
public void setBlood( int b) {
_blood = b;
}
如果要给一个person的实例设置血型,代码如此:person.setBlood(Blood.A);
这个写法的代码中,setBlood的参数为整型,如果如此调用person.setBlood(9);
编译器无法发现错误,只能靠人为控制,如果在方法setBlood中检测参数的有效性,又超越了该方法的职责。
重构后的代码如下:
final class Blood{
public final static Blood O=new Blood(0);
public final static Blood A=new Blood(1);
public final static Blood B=new Blood(2);
public final static Blood AB=new Blood(3);
private int _bloodCode;
private Blood(int b){
_bloodCode=b;
}
public int getCode(){
return _bloodCode;
}
}
class person{
private Blood _blood;
public setBlood(Blood b){
_blood=b;
}
}
如此,(1)隐藏了血型的编码细节
(2)方便编译期间发现错误
(3)避免使用超越数据范围的参数
分享到:
相关推荐
《神奇的VLOOKUP函数》教学设计主要针对中职计算机应用基础课程,旨在教授学生如何高效使用Excel中的VLOOKUP函数。VLOOKUP函数在处理大量数据时具有强大的查找和匹配功能,对于会计专业的学生来说尤其重要,因为他们...
在《MyQQ》项目中,通过精简DBHelp类,可能涉及到的技术包括模块化、重构、算法优化以及数据结构的合理运用等。这些方法旨在减少冗余代码,提高代码的可读性和可维护性,从而使得整个项目在短时间内(10天内)得以...
就象大家所听说过的那些神奇小子创业故事一样,几只从大西洋游回的海龟找到了一个伟大的idea——在互联网上开办在线商店销售宠物。幸亏的是他们找到了投资者而且发展的很不错。但是随着时间的推移,当初“完美”的...
在自编码器的训练过程中,模型试图最小化输入数据与重构数据之间的差异,这通常通过均方误差(Mean Squared Error, MSE)或其他相似的损失函数来度量。通过优化网络参数,自编码器可以学习到数据的内在结构和模式,...
在我所知的技术专家中,没人比Lea Verou更能领会新一代CSS的精髓。”——Jeffrey Zeldman,《网站重构》作者 “Lea Verou那渊博的学识是无法复制的,但她在这本书中倾囊相授,令我们都有机会一窥CSS的强大威力与神奇...
神奇宝贝翡翠是一款经典的Game Boy ...通过这个项目,开发者不仅可以学习到游戏开发的具体技术,还可以了解到逆向工程和软件重构的实践,同时还能为神奇宝贝系列的粉丝带来新的可能性,比如创建MOD或者复刻作品。
书中的核心观点之一是“没有银弹”(No Silver Bullet),即不存在一种神奇的方法可以显著提升软件开发的效率。布鲁克斯认为,软件开发的复杂性主要源于其本质上的人工特性,而不仅仅是技术问题。因此,解决软件工程...
他提出,不存在一种神奇的工具、语言或方法,能够显著提升程序员的生产力,解决所有软件工程难题。这个观点提醒我们,软件开发是一个多因素影响的过程,需要综合考虑技术和管理策略。 3. **模块化设计**:书中提倡...
该技术的名称直译为“语音转换成唱歌”,其核心是将普通人的讲话声音转化为美妙的歌声,实现了语音与音乐之间的神奇转化。这一创新技术的出现,不仅为音乐创作带来了新的可能性,也为娱乐、教育、游戏等领域开辟了新...
《Reflector:深入理解.NET代码的神奇工具》 在.NET开发领域,Reflector是一款不可或缺的神器,它以其强大的反编译功能,为开发者们揭示了原本封闭的类库内部结构和工作原理。本文将深入探讨Reflector的核心特性、...
本篇论文介绍了关于“基因组重构”的信息学竞赛题目,探讨了生物学数据处理的相关算法和技术。 以上是对《国家集训队2017论文集》部分章节的主要内容概括。每篇论文都针对特定的信息学竞赛问题进行了深入的研究和...
- 科学家会利用现代技术对化石进行细致的研究,以获取尽可能多的信息,同时也会采取措施保护这些珍贵的化石不被破坏。 总的来说,【王者印记——恐龙化石的形成】不仅展示了自然界的神奇力量,也体现了生物与环境...
《PKSV:神奇宝贝脚本查看器/编辑器——开源技术探索》 PKSV,全称为Pokemon Script Viewer,是一款专为解析、编辑和重构神奇宝贝Advance ROM中的脚本而设计的工具。它由C语言编写,提供了两种使用模式:图形用户...
设计模式并不要求使用独特的语言特性,也不采用那些足以使你的朋友或老板大吃一惊的神奇的编程技巧。所有的模式均可以用标准的面向对象语言实现,这也许有时会比特殊的解法多费一些功夫,但是为了增加软件的灵活性...
设计模式并不要求使用独特的语言特性,也不采用那些足以使你的朋友或老板大吃一惊的神奇的编程技巧。所有的模式均可以用标准的面向对象语言实现,这也许有时会比特殊的解法多费一些功夫,但是为了增加软件的灵活性...