Object Oriented Design Problems | Hello World



Object Oriented Design Problems | Hello World

There are three basic relations, inheritance (arrow), association(line) and aggregation (diamond solid or shallow).

Here are some problem from the Crack the coding interview.
1. Design the data structures for a generic deck of cards. Explain how you would subclass it to implement particular card games.
First we decide what classes we will have. Say if we are implementing a blackjack game.
We need to have a card class, which will have the suit and the value. suit will come from a enum class and value is just an integer value (notice that the Ace and King Queen and Jack might need specific treatment). Then we will have a Deck class which will aggregate with the card class. Then we will need a hand class that will handle the distribution of cards and count the scores.

2. Imagine you have a call center with three levels of employees: fresher, technical lead (TL), product manager (PM). There can be multiple employees, but only one TL or PM. An incoming telephone call must be allocated to a fresher who is free. If a fresher can't handle the call, he or she must escalate the call to technical lead. If the TL is not free or not able to handle it, then the call should be escalated to PM. Design the classes and data structures for this problem. Implement a method getCallHandler().
First the fresher, TL and PM have common entries such as name, salary, address, that can be put into a common subclass, each of them will also have a rank which differ them from each other. The callHandler will take the call and put all the call in a queue, and distribute the call according to the rank to different employee.

3.Design a musical juke box (MP3 player like ipod) using object oriented principles
First lets break down the components:
Player itself.
Flash that stores songs.
Display that display the info about the song
Then we further break down the components to functions
PlayList that queue up the song will be played

4. Design a chess game using object oriented principles
We need a chess board to record the name, and a handler to handle the input of the users, Then each chess piece will have some common attributes so they can be put into a basic class while each of them can inherit the base class and add their own attributes.


Read full article from Object Oriented Design Problems | Hello World


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts