CS304 GDB Solution & Discussion Fall 2015
|Graded Discussion Board||Dated: Jan 25, 16|
Please Note that GDB of CS304 will be launched on Monday, February 01, 2016(01-February-2016) and will last for 48 hours only.
Suppose you are working in an IT company that provides services to different education institutes to manage student’s record. Your company is going to launch a new project which requires saving information about student. Student information may include information related to their assignments, quizzes and exam marks or any other problem that student face in any course etc. Saved information can then be used later to analyze student data and find reasons if any student is not getting good marks. It is recommended to save the student records in different formats like saving in database, text files, xml and few others. Saving information in different formats will help the institutes analyze information as per their convenience. This information will be easily available to integrate with any application, institute is already using.
You are already working on this project as a software engineer in the company. . You know, there are different mediums to save the information like Save to DB, Save to File, etc. Similarly some other methods can be remove from file, remove from DB etc.
Now the student class can be implemented in two ways:
Either you can write abstract class with virtual functions like SaveToFile(), SaveToDB(), RemoveFromFile(), RemoveFromDB()etc.
You can develop an interface with declarations of the above mentioned functions.
Alternatively you can implement both in parallel. Which option will you adopt? Justify your answer with logical reasons.
shahryar rafiq ni thek hi ha
reson tu batao
5 -interfaces may be multiple-inherited, abstract classes may not (this is probably the key concrete reason for interfaces to exist separately from abtract classes - they permit an implementation of multiple inheritance that removes many of the problems of general MI).
6- If you anticipate creating multiple versions of your component, create an abstract class. Abstract classes provide a simple and easy way to version your components. By updating the base class, all inheriting classes are automatically updated with the change. Interfaces, on the other hand, cannot be changed once created. If a new version of an interface is required, you must create a whole new interface.
shahryar rafiq thek ha ye gdb apki agr kuch aur add karo gy abstract class k bary mein tu best oh ga.......
Wasifa Baig (MIT **) very good...
HI friends kya yah dno qustion solve karny han kya?
tell me. thanks
In programming languages, an abstract class is a generic class (or type of object) used as a basis for creating specific objects that conform to its protocol, or the set of operations it supports. Abstract classes are not instantiated directly.
Abstract classes are useful when creating hierarchies of classes that model reality because they make it possible to specify an invariant level of functionality in some methods, but leave the implementation of other methods until a specific implementation of that class (a derived class) is needed.
#waqas yuah bto k dno question solve karny han kya. mujhy smjh ni aa rahy.
i think the point is that which one we should chose for the mentioned situation instead of what are that both classes. which method we should choose??
soooo which method is best according to the GDB.
Abstract Classes are best according to this situation