类的设计---麻球与油果
前段时间和一个广西的朋友一起去吃早餐,朋友按照广西的说法要点一份油果,服务员半天没搞懂是什么东西,后面几经解释,说是麻球之后服务员瞬间get到意思了。
这件事情后面稍微想了一下,为什么服务员一直没搞懂油果是个什么东西。说实话,如果不是之前知道,确实很难把油果这个名词跟图片中的食物联想的起来。
想一下,这种食物用面向对象思路怎么去定义,
1:油果 继承自水果类,里面有个成员变量:油
2:麻球 继承自球抽象类,里面有个成员变量: 芝麻
第一种定义方法,水果类公共的特质,例如水果需要有生长的环境;有发芽、生长、开花、结果的生命周期。显然它不具备,所以这个名称即使在现实生活中也让人费解。
第二种定义方法,麻球,见名知意。芝麻、球状的东西,在饭店这种场景下。很容易图中食物联想起来。
代码实现其实也是现实生活场景的表达。我们在代码实现中定义事物中也可能遇到类似的场景。
油果的说法虽然浪漫,听起来更能勾起人的食欲。逻辑、实用性上可能不及麻球来的准确。
对于我们程序员,还是跟服务员说声:“幺妹儿,来份麻球”。
转载于:https://www.cnblogs.com/daghai/p/10856974.html
类的设计---麻球与油果相关推荐
- 转:软件设计漫谈之三:30分钟掌握面向对象类的设计原则
转自:http://blog.csdn.net/yunhua_lee/article/details/5105524 30分钟掌握面向对象类的设计原则 看过设计模式的人不少,但看过Martin的面向对 ...
- VS 2010 通过 Architecture创建UML类图设计
[赛迪网报道]类是对应用领域或应用解决方案中概念的描述.类图以类为中心进行组织,类图中的其他元素或属于某个类,或与类相关联.类也是对象的集合,展示了对象的结构及与系统交互的行为,其目的是显示建模系统的 ...
- UVA11021麻球繁衍
题意: 有K只麻球,每只生存一天就会死亡,每只麻球在死之前有可能生下一些麻球,生i个麻球的概率是pi,问m天后所有的麻球都死亡的概率是多少? 思路: 涉及到全概率公式,因为麻球的 ...
- 一文讲透非标品的商品类目设计
www.pmcaff.com 本文为作者 百转 于社区发布 只要做电商,商品类目设计就是绕不开的一环.好的类目设计能让供需双方更快.更好定义或找到所关心的商品,是整个电商体系的地基,是构建并链接各个模 ...
- java 重启线程_java 可重启线程及线程池类的设计(详解)
了解JAVA多线程编程的人都知道,要产生一个线程有两种方法,一是类直接继承Thread类并实现其run()方法:二是类实现Runnable接口并实现其run()方法,然后新建一个以该类为构造方法参数的 ...
- Java黑皮书课后题第10章:*10.10(Queue类)10.6节给出一个Stock类。设计一个名为Queue的类用于存储整数。像栈一样,队列保存元素。在栈中,元素后进先出。队列中元素先进先出
10.10(Queue类)10.6节给出一个Stock类,设计一个名为Queue的类用于存储整数 题目 程序 破题 代码 Test10.java Test10_Queue.java UML 题目 程序 ...
- Java黑皮书课后题第10章:10.4(MyPoint类)设计一个名为MyPoint的类,代表一个以x坐标和y坐标表示的点
10.4(MyPoint类)设计一个名为MyPoint的类,代表一个以x坐标和y坐标表示的点 题目 程序 代码 Test4.java Test4_MyPoint.java 运行实例 UML 题目 程序 ...
- Java黑皮书课后题第10章:10.3(MyInteger类)设计一个名为MyInteger的类
10.3(MyInteger类)设计一个名为MyInteger的类 题目 程序说明 代码 Test3.java Test3_MyInteger.java 运行实例 UML 题目 程序说明 测试程序:T ...
- Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置。
Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置 题目 破题 代码 Test13 Test13_Location 运行结果 ...
最新文章
- 探究:如何判断Delphi中的对象指针是否可用
- python实现单例模式
- python中nltk_python2.7和NLTK安装详细教程
- pandas 数据索引与选取
- 【ExtJS】FormPanel 布局(一)
- ubuntu 16.04 Nginx源码部署安装
- 几百万的数据查找重复值_如何快速查找出Excel中的重复数据,多角度分析
- 从spring管理的datasource中获取connection
- 如何将三万行代码从 Flow 移植到 TypeScript?
- python3解码base64_python3base64解码混乱的换行符
- js页面滚动时层智能浮动定位实现(jQuery/MooTools)
- mysql非阻塞通信协议_NIO 的非阻塞式网络通信
- 如何用Java写QQ机器人 v2.0
- 数据库课设:简易图书管理系统
- 企业管理中使用凌云仓库管理软件免费版的优势
- Delphi时间戳Unix转换DateTimeToUnix和UnixToDateTime
- CCS编译错误:error #10099-D和error#10234-D unresolved symbols remain解决方法
- Aras Innovator: 如何在Form中放入图片
- Halcon学习笔记:3D_coordinates(3D标定)
- Pandas合并之Concat合并
热门文章
- Unity 触摸事件的运用
- 2020-12-16 今日学习Date类
- 服务器提示临时文件已满,win10系统提示”由于临时文件夹已满而导致“磁盘空间不足”错误的解决办法_win10教程_uc电脑园...
- Java里面的四种内存屏障
- 2018-2019-2 20165205 网络对抗技术 Exp7 网络欺诈防范
- Unity好用插件集合1
- 什么是AP,什么是CP,什么是CAP?
- C语言从键盘上输入年份和月份,计算并输出这一年的这一月共有多少天。
- 利用ESP8266+OLED(I2C)打造智能时钟(网络校时+实时天气+天气预报)
- 紧随时代的步伐--Java8之Lambda表达式的使用