c*******0 发帖数: 33 | 1 CareerCup 上的题, Design the data structure for an online book reader
system, sample solution 如下:
class User {
User_id;
User_details;
Account_type;
Search_Library();
Read_book();
Renew_Membership();
AddUser();
Get();
Set();
};
class Book {
Book_id;
Book_details;
AddBook();
Update();
Delete();
Get();
Set();
};
class OnlineReaderSystem() {
Book B;
User U;
ListenRequest();
Search();
Display();
};
我不理解的地方:
1.为什么User 可以addUser(),Renew_MemberShip(), Book 可以AddBook(), Update(),
Delete()? 这些method是否需要administrator class来实现
2. 如果需要administrator class, 是否private data member应该包含set of Book
和 User?
3. User class 里面的Read_Book() method应该实现什么功能?这个方法为什么不放在
OnlineReaderSystem里面?
4. User是否需要存一个data member 放他自己library里面的书?这里Search_library
()是search 他自己的library还是全部的library?
还有一个general 的问题, 如果我需要一个object A, 还有一个collection of object
A, 是否需要建两个class?比方说book class 和 books class.
谢谢高手指点 | h**********d 发帖数: 4313 | 2 不是高手,我的理解是这样
addUser, Renew_Membership等这些都是User的functionalities,当然需要在User里面
有定义,但function具体怎么实现肯定还需要靠那个onlinesystem
Book class同理
不需要administrator class,这个onlinesystem就相当于那个class。或者可以叫
control class
那个User的search_libary 明显是要去call onlinesystem的search function,
search 整个libary (因为search_libary是User必须要有的functionality,所以在
User里定义,实现是靠onlinesystem的search() function)
最后那个问题,不需要的,哪个class需要collection of books可以在class fields里
定义呀
同求高手见解。。
1.为什么User 可以addUser(),Renew_MemberShip(), Book 可以AddBook(), Update(),
Delete()? 这些method是否需要administrator class来实现
2. 如果需要administrator class, 是否private data member应该包含set of Book
和 User?
3. User class 里面的Read_Book() method应该实现什么功能?这个方法为什么不放在
OnlineReaderSystem里面?
4. User是否需要存一个data member 放他自己library里面的书?这里Search_library
()是search 他自己的library还是全部的library?
还有一个general 的问题, 如果我需要一个object A, 还有一个collection of object
A, 是否需要建两个class?比方说book class 和 books class.
【在 c*******0 的大作中提到】 : CareerCup 上的题, Design the data structure for an online book reader : system, sample solution 如下: : class User { : User_id; : User_details; : Account_type; : Search_Library(); : Read_book(); : Renew_Membership(); : AddUser();
| c*******0 发帖数: 33 | 3 谢谢楼上的回答。这样OnlineReaderSystem()里面是否需要collection of Book 和
User, 而不是只有一个Book B 和 User U?
另外,楼上说“addUser, Renew_Membership等这些都是User的functionalities,当然
需要在User里面有定义,但function具体怎么实现肯定还需要靠那onlinesystem“
我的理解是,addUser是往collection of User里面加一个object,因为Collection of
User是在OnlineReaderSystem里,所以addUser应该在那里实现。可是为什么需要在
User里面定义。难道一个User可以把自己加进collection? | s*****n 发帖数: 5488 | | h**********d 发帖数: 4313 | 5 不是一个User可以把自己加进collection,是别人调用User的函数
User u = new User();
u.addUser();
上面两行不是User的"行为",是control class的调用
建议你多看看OO的书,你貌似还停留在C的procedure programming思维
of
【在 c*******0 的大作中提到】 : 谢谢楼上的回答。这样OnlineReaderSystem()里面是否需要collection of Book 和 : User, 而不是只有一个Book B 和 User U? : 另外,楼上说“addUser, Renew_Membership等这些都是User的functionalities,当然 : 需要在User里面有定义,但function具体怎么实现肯定还需要靠那onlinesystem“ : 我的理解是,addUser是往collection of User里面加一个object,因为Collection of : User是在OnlineReaderSystem里,所以addUser应该在那里实现。可是为什么需要在 : User里面定义。难道一个User可以把自己加进collection?
| c*******0 发帖数: 33 | 6 那addUser()应该怎么定义?能不能写个sample implementation?
另外,楼上能推荐一本OO的书吗?后天要面试了,时间比较紧,最好是能有几个c++的
例子帮助理解的。谢谢啦。 | d********y 发帖数: 2114 | 7 sometimes collection class helps. so adduser can be done in collection class.
【在 c*******0 的大作中提到】 : 那addUser()应该怎么定义?能不能写个sample implementation? : 另外,楼上能推荐一本OO的书吗?后天要面试了,时间比较紧,最好是能有几个c++的 : 例子帮助理解的。谢谢啦。
| z*******y 发帖数: 578 | 8 顶一个 那位童鞋给介绍本好的OO design的书籍?
写了很多code之后发现这方面也非常需要提高 | c*******0 发帖数: 33 | | r******n 发帖数: 170 | 10 我觉得你的想法是对的,不过跟书上的解答方向不大一样。
你想的是user, book只是两个model的class, 只包含各自属性的attribute。然后再建
立一个类似于整体系统的interface,包含user, book的vector之类的集合,提供给用
户以search之类的function。
书上的解答,我理解为book, user两个类某种程度把model和modelDAO的概念混合在一
起了,你把user和book的add, delete, update想象成对应后台的table的CRUD,那么这
2个类就是各自的DAO类。这个onlineReaderSystem相当于一个Controller的概念,用来
调用modelDAO的各种function达到用户的request,至于view可以对应user, book各自一
个,当然这里就没那么详细的讨论了。你按照一个常见Web系统的MVC架构想,就容易理
解了。
希望还有人谈谈自己的想法。
of
【在 c*******0 的大作中提到】 : 谢谢楼上的回答。这样OnlineReaderSystem()里面是否需要collection of Book 和 : User, 而不是只有一个Book B 和 User U? : 另外,楼上说“addUser, Renew_Membership等这些都是User的functionalities,当然 : 需要在User里面有定义,但function具体怎么实现肯定还需要靠那onlinesystem“ : 我的理解是,addUser是往collection of User里面加一个object,因为Collection of : User是在OnlineReaderSystem里,所以addUser应该在那里实现。可是为什么需要在 : User里面定义。难道一个User可以把自己加进collection?
| c*******0 发帖数: 33 | | f**********t 发帖数: 1001 | 12 我最近也在学习。
我觉得还是用一个administrator class好些。
这个class有collection of User和Collection of Book。
用户可以去read book,也可以有一个data member,记录它借的书/读的书。
欢迎大家提供意见。 |
|