梦想破碎是没有声音的,它只是缓慢又沉默地离开了。 by 苏更生

标签:面向对象设计

设计模式

设计模式学习笔记 (1)

设计模式学习笔记 (1)
1.设计模式中类与类之间的6种关系 在面向对象的设计模式中,类与类之间主要有6种关系:依赖、关联、聚合、组合、继承、实现。 依赖:类A当中使用了类B,其中类B是作为类A的方法参数、方法中的局部变量、或者静态方法调用。则称类A依赖类B。 关联:类A当中使用了类B,其中类B是作为类A...

Jay13 3年前 (2014-09-14) 6310℃ 1评论 28喜欢

谷歌CTCI

7.10 使用C++实现一个垃圾回收器

题目 使用C++实现一个垃圾回收器,并描述用到的数据结构和算法。 解答 剖析: 在C++中,使用引用技术实现垃圾回收的,基本上总是以智能指针的形式出现,它执行的就是引用计数。使用智能指针而非一般指针的原因是,概念上的实现简洁和易于使用。 使用智能指针后,所有的垃圾回收都在后台完成...

Jay13 3年前 (2014-03-22) 3208℃ 1评论 4喜欢

谷歌CTCI

7.8 用面向对象思想设计奥赛罗游戏(Othello)

题目 奥赛罗的玩法如下:每个奥赛罗一面是白色,一面是黑色。当某个奥赛罗的左右或上下被其反色的奥赛罗包围时,称它被捕获了,它需要翻过来。 在轮到你玩时,你必须捕获至少一个你对手的奥赛罗。当玩家都不能再下子时,游戏结束,赢家为拥有奥赛罗最多的一方。请使用面向对象设计来实现奥赛罗游戏。...

Jay13 3年前 (2014-03-22) 2769℃ 0评论 2喜欢

谷歌CTCI

7.7 如何设计一个聊天服务程序

题目 在提供了后台的各种部件,类和方法的细节后,如何设计一个聊天服务程序?最难解决的问题是什么? 解答 剖析: 我们的聊天服务器是什么? 这是你和面官需要讨论的问题,不过先让我们做几个假设:设想我们实现的是一个基本的聊天服务,只支持少数几个人。 用户拥有联系人列表,可以看到朋友在...

Jay13 3年前 (2014-03-22) 2763℃ 0评论 2喜欢

谷歌CTCI

7.6 设计一个拼图游戏的数据结构

题目 实现一个拼图游戏,请设计用到的数据结构,并解释拼图算法 解答 剖析: 我们根据边的类型来将其分组。因为内边和外边相伴,反之亦然,这样我们可以直接去寻找潜在匹配。 当我们向内走时,我们记下拼图问题的内边周长(exposed_edges),该变量初始化为角落处的边。 ...

Jay13 3年前 (2014-03-22) 2993℃ 1评论 3喜欢

谷歌CTCI

7.5 利用OOP思想设计在线读书系统

题目 利用OOP思想设计在线读书系统 解答 剖析: 我们假定需要实现一个基本的在线读书系统,它具有以下功能: 1.用户创建和延续 2.寻书 3.读书 为了实现这些功能,我们可能需要其他的函数,比如获取,设置和更新等。所需的对象包括User,Book和Library. ...

Jay13 3年前 (2014-03-22) 2533℃ 1评论 2喜欢

谷歌CTCI

7.4 用面向对象思想设计一个国际象棋游戏

题目 设计一个国际象棋游戏(含AI) 解答 剖析: 1.必须有一个数据结构来存储棋盘上的棋子。不同的棋子继承抽象棋子类 2.人类玩家和AI继承玩家类 3.白色格子和黑色格子分开存储 4.有一个类来专门处理悔棋,就是将上一个状态存储起来 5. GameManager类专门用来存储下...

Jay13 3年前 (2014-03-22) 6049℃ 1评论 3喜欢

谷歌CTCI

7.2 为电话呼叫中心设计类和数据结构

题目 设想一个电话呼叫中心有三个级别的人:菜鸟接线员,技术带头人(TL),产品经理(PM)。该中心有N多个菜鸟接线员,一个TL,一个PM。当有来电时,将该来电分配给空闲的菜鸟接线员处理,如果这个菜鸟接线员不能处理这个电话,就转接给TL,如果TL没空或者不能处理,就将电话转给PM。...

Jay13 3年前 (2014-03-22) 2631℃ 1评论 3喜欢