![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面向对象编程
文章平均质量分 62
西红柿系番茄
知其然,知其所以然。
展开
-
编程题:随机抢红包---面向对象版
太晚了,直接放代码吧!1、红包池工厂用于创建一个红包池,保证其正确性和完整性。package red_bag;/** * 红包池工厂 */public class RedBagPoolFactory { /** * 创建红包池 * * @param number 个数 * @param totalMoney 总共金钱(分) * @param maxMoney 单个最大金钱(分) * @param minMoney原创 2021-05-30 00:50:17 · 735 阅读 · 0 评论 -
DDD随便整理
一、DPDomain Primitive:Domain Primitive是一个在特定领域里,拥有精准定义的、可自我验证的、拥有行为的Value Object。DP是一个传统意义上的Value Object,拥有Immutable的特性 DP是一个完整的概念整体,拥有精准定义 DP使用业务域中的原生语言 DP可以是业务域的最小组成部分、也可以构建复杂组合在DDD里,DP可以说是一切模型、方法、架构的基础,而就像Integer、String一样,DP又是无所不在的。可以带来的好处:接口的清原创 2021-05-16 17:10:37 · 1107 阅读 · 2 评论 -
编程题:斐波那契数列(兔子繁衍问题)---面向对象版
最简单的版本:每一项等于前两项之和,这个用递归或者循环就可以解决。这里我们延伸出一个生活中兔子繁衍的实际案例:一开始有 A 只兔子,每只兔子 B 个月后可以生出 C 只小兔子,兔子在第 D 个月之后会死亡。如图展示了A=1,B=2,C=2,D=3的情况下兔子繁衍过程这里我们使用面向对象的思维解决????首先是建模:第一个我们定义兔子窝,它有窝里兔子、兔子寿命、兔子繁殖年龄、兔子每次繁殖数量4个属性,还有增加兔子、移除兔子、获取N月后兔子数量3个行为。第二个我们定义兔子,它有年龄1原创 2021-01-15 16:55:54 · 2243 阅读 · 0 评论 -
编程题:约瑟夫问题---面向对象版
/** * 约瑟夫问题是个有名的问题: * N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的顺序是:5,4,6,2,3。 */public class Josephus { public static void main(String[] args) { Game.create(10, 3, 1).start(); } /** * 游戏 */ static class.原创 2021-01-15 00:10:26 · 1217 阅读 · 0 评论 -
编程题:猴子分桃---面向对象版
题目猴子分桃:3只猴子抢着分100只桃子,每只抢到的猴子分去剩余桃子的一半。使用多线程模拟这一过程。分析面向对象就是抽取模型:第一个是猴子很简单,它有桃子数量的属性和抢桃的行为;第二个,表面上是桃子,但其实是一堆桃子,这里我们建模为桃篮子,它有桃子数量的属性和减少一半的行为。编码首先定义猴子。为了方便跟踪抢的过程我们加了一个名称属性,并且重写toString方法。在抢桃行为里我们把桃篮子传递进去,然后不断地拿走一半加到自己的数量里,直到无桃可抢。用多线程模拟,那就让猴原创 2021-01-09 16:08:09 · 1429 阅读 · 4 评论