सभी,साक्षात्कार क्यू - डिजाइन फाइल सिस्टम - समीक्षा
मैं हाल ही में तकनीकी साक्षात्कार में से एक में कहा गया था एक फ़ाइल Sysem के लिए एक उच्च स्तरीय डिजाइन लिखने के लिए। इस सवाल का मेरा जवाब इस प्रकार था।
interface BaseFileSystem
{
/*Basic file/folder attributes are:
1. File/Folder Size
2. File/Folder Date created
3. File/Folder Date Modified
4. File/Folder permissions - Read, write and execute
5. File/Folder Owner - Owner of the file who defines permissions for other users
6. File/Folder Visibility - Hidden or Visible
7. File/Folder Name
Hence each one of the above attributes would have public <return type> get() and public void set<AttributeName>(<variable datatype>) */
}
public class File implements BaseFileSystem
{
/*The `File` class should implement all of the methods from interface `BaseFilesystem`.
In addition, it must also implement following specific methods that can only be associated with physical files*/
public String getFileExtension(){….}
public void setFileExtension(String value) {….}
public String[] getAssociatedPrograms(){ …..}
public void executable(){ …. };
}
public class Folder implements BaseFileSystem
{
/*The `Folder` class should implement all of the methods from interface `BaseFileSystem`. In addition, it must also implement following specific methods that can only be associated with the physical 'folders'*/
public BaseFileSystem[] getSubFoldersAndFiles(){ …. }
public void addSubFolderAndFiles(BaseFileSystem fileObj) { …. }
public void executable(){throw new UnsupportedOperationException();}
}
साथ ही, इस तरह के डिजाइन प्रश्नों के किसी भी सामान्य संकेत बहुत सराहना की जाएगी: मैं की समीक्षा करें और मुझे पता है अगर वहाँ सुझाव/सुधार कर रहे हैं जाने के लिए हर किसी के अनुरोध करते हैं।
हां, आप सही हैं। 'पढ़ा' और 'लिखना' मूलभूत कार्यक्षमताओं थे जिन्हें मैंने अपने समाधान में याद किया है। फ़ाइल एक्सटेंशन से जुड़े कार्यक्रमों के बारे में, आपको ऐसा क्यों लगता है कि यह फ़ाइल सिस्टम का हिस्सा नहीं होना चाहिए? इस अर्थ में, आप तर्क तर्क कहां देखते हैं? अगर मेरे पास एन प्रोग्राम के साथ फाइल है, तो मुझे लगता है कि यह ओएस को बताने के लिए जिम्मेदार फाइल है। ओएस प्रोग्राम कौन से प्रोग्राम फाइल में डेटा पढ़ने के लिए उपयोग कर सकते हैं। –
जैसा कि ओस्वाल्ड ने कहा था, उपयोगकर्ता ए प्रोग्राम प्रोग्राम के साथ प्रोग्राम एक्स, उपयोगकर्ता बी के साथ फाइल को जोड़ सकता है। इसके अलावा, अधिकांश ऑपरेटिंग सिस्टम में आप किसी विशेष फ़ाइल के साथ प्रोग्राम को संबद्ध नहीं करते हैं, लेकिन किसी विशेष प्रकार की फाइलों के साथ (फ़ाइल एक्सटेंशन द्वारा निर्धारित, फ़ाइल या कुछ भी कुछ विशेषता)। – Jirka
क्या बेसफाइल सिस्टम या फ़ोल्डर पर "पथ" होना आवश्यक है? – user3795309