java - झाबुआ समाचार झाबुआ मध्य प्रदेश




सार कक्षा:-रायल टाइम उदाहरण (4)

हाल ही में एक साक्षात्कार में मुझे एक बहुत ही सामान्य सवाल पूछा गया "जावा में सार क्या है" .मैंने परिभाषा दी और यह सार के बारे में कुछ अन्य प्रश्न के साथ अनुपालन किया गया, जो सार तत्व और ठोस पद्धति और ठोस पद्धति और आदि के बीच अंतर है। आखिरी साक्षात्कारकर्ता ने एक वास्तविक समय का उदाहरण देने के लिए कहा जब मुझे एक वर्ग को सारण के रूप में इस्तेमाल करना चाहिए या परिभाषित करना चाहिए। मुझे भ्रमित हो गया है। मैंने कुछ उदाहरण दिया है लेकिन वह आश्वस्त नहीं था।

मैंने इसे googled लेकिन कोई वास्तविक समाधान नहीं मिला

तो क्या कोई मुझे वास्तविक समय उदाहरण दे सकता है, जब उन्होंने अपनी प्रोजेक्ट में एक कक्षा को परिभाषित किया और क्यों?

धन्यवाद।


आप स्वयं को जेडीके से कम से कम एक का हवाला दे पाएंगे। java.util.collections पैकेज में देखें। कई सार वर्ग हैं आपको Map लिए इंटरफ़ेस, सार, और कंकरीट पूरी तरह से समझना चाहिए और क्यों यहोशू ब्लाच ने इसे इस प्रकार लिखा था


मैं टेम्पलेट विधि पैटर्न के साथ conjuction में अक्सर सार वर्गों का उपयोग करें
मुख्य सार कक्षा में मैंने मुख्य एल्गोरिथ्म के कंकाल लिखा और हुक के रूप में अमूर्त विधियां बनायीं, जहां सूक्सेल एक विशिष्ट क्रियान्वयन कर सकते हैं; मैं डेटा पर्सर (या प्रोसेसर) लिखने के लिए अक्सर प्रयोग किया जाता था, जिसे एक अलग जगह (फाइल, डाटाबेस या कुछ अन्य स्रोतों) से डेटा पढ़ने की जरूरत होती है, समान प्रसंस्करण कदम (शायद छोटे अंतर) और अलग-अलग आउटपुट
यह पैटर्न रणनीति पैटर्न की तरह दिखता है, लेकिन यह आपको कम ग्रैन्युलैरिटी प्रदान करता है और यदि मुख्य कोड बहुत अधिक हो या बहुत मुख्य प्रवाह से अपवादों की आवश्यकता हो तो (यह विचार मेरे अनुभव से आया है) एक कठिन संभोग के लिए मुश्किल हो सकता है
बस एक छोटा सा उदाहरण:

abstract class MainProcess {
  public static class Metrics {
    int skipped;
    int processed;
    int stored;
    int error;
  }
  private Metrics metrics;
  protected abstract Iterator<Item> readObjectsFromSource();
  protected abstract boolean storeItem(Item item);
  protected Item processItem(Item item) {
    /* do something on item and return it to store, or null to skip */
    return item;
  }
  public Metrics getMetrics() {
    return metrics;
  }
  /* Main method */
  final public void process() {
    this.metrics = new Metrics();
    Iterator<Item> items = readObjectsFromSource();
    for(Item item : items) {
      metrics.processed++;
      item = processItem(item);
      if(null != item) {

        if(storeItem(item))
          metrics.stored++;
        else
          metrics.error++;
      }
      else {
        metrics.skipped++;
      }
    }
  } 
}

class ProcessFromDatabase extends MainProcess {
  ProcessFromDatabase(String query) {
    this.query = query;
  }
  protected Iterator<Item> readObjectsFromSource() {
    return sessionFactory.getCurrentSession().query(query).list();
  }
  protected boolean storeItem(Item item) {
    return sessionFactory.getCurrentSession().saveOrUpdate(item);
  }
}

यहाँ एक और उदाहरण


एक अमूर्त वर्ग का सबसे अच्छा उदाहरण GenericServlet GenericServlet का मूल वर्ग है। यह एक अमूर्त वर्ग है

जब एक कस्टम सर्वलेट क्लास में 'जेनेरिक सर्विले' को विरासत में लेते हैं, तो service() विधि ओवरराइड होना चाहिए।


यहाँ, अमूर्त वर्ग के बारे में कुछ ...

  1. सार वर्ग एक अपूर्ण वर्ग है, इसलिए हम इसे इन्स्तांत नहीं कर सकते।
  2. यदि तरीकों सार हैं, तो कक्षा सार होना चाहिए।
  3. सार वर्ग में, हम सार और कंक्रीट विधि दोनों का उपयोग करते हैं।
  4. यह एक वर्ग सार और अंतिम दोनों को परिभाषित करना अवैध है।

वास्तविक समय उदाहरण-

यदि आप एक नई कार (वैगनएक्स) बनाना चाहते हैं जिसमें सभी अन्य कार की संपत्तियों में रंग, आकार, इंजन इत्यादि शामिल हैं और आप अपनी कार में मॉडल, बेसइंजिन जैसी कुछ अन्य सुविधाएं जोड़ना चाहते हैं। फिर बस आप एक सार क्लास WagonX जहाँ आप सभी पूर्वनिर्धारित कार्यक्षमता का सार और अन्य क्रियात्मकताएं ठोस हैं, जो आपके द्वारा परिभाषित है I
एक अन्य उप वर्ग जो अमूर्त वर्ग वैगनएक्स का विस्तार करता है, डिफ़ॉल्ट रूप से यह अमूर्त पद्धतियों का भी उपयोग करता है जो अमूर्त वर्ग में तत्काल होता है। शूक्लास भी उप-वर्ग की ऑब्जेक्ट बनाकर ठोस तरीकों तक पहुंचते हैं।
कोड को पुन: प्रयोज्य बनाने के लिए, डेवलपर्स का प्रयोग ज्यादातर सार वर्ग का होता है।

abstract class WagonX
{
   public abstract void model();
   public abstract void color();
   public static void baseEngine()
    {
     // your logic here
    }
   public static void size()
   {
   // logic here
   }
}
class Car extends WagonX
{
public void model()
{
// logic here
}
public void color()
{
// logic here
}
}






abstract-class