2015-03-20 6 views
8

के रूप में मैं Effective javaब्लोटेड क्लास और टैग की गई कक्षा के बीच क्या अंतर है?

फूला हुआ वर्ग पदानुक्रम में पढ़ा कई तरीकों कि उनके तर्कों के प्रकार में केवल भिन्न होते हैं, के रूप में वहाँ वर्ग पदानुक्रम में कोई प्रकार सामान्य व्यवहार पर कब्जा कर रहे हैं युक्त फूला हुआ वर्गों के लिए नेतृत्व कर सकते हैं।

और Link

में एक फूला हुआ वर्ग अक्सर कई विशेष मामलों है: गुण या व्यवहार कुछ उदाहरणों नहीं बल्कि दूसरों के लिए मान्य है। अक्सर प्रोग्रामर टाइप टैग पेश करके विशेष मामलों के साथ सौदा करने का प्रयास करते हैं।

और समानता Effective java में के रूप में यह उल्लेख किया गया है फूला हुआ वर्ग के लिए टैग वर्ग के बीच है कि वहाँ:

एक वर्ग जिसका उदाहरणों दो या अधिक रूपों में आता है और के स्वाद का संकेत एक टैग क्षेत्र शामिल उदाहरण उदाहरण बोझ हैं जो अन्य स्वादों से संबंधित अप्रासंगिक क्षेत्रों के साथ हैं।

तो समापन दोनों वर्गों टैग प्रकार/फ़ील्ड और दोनों वर्गों हो सकता है तो कई कार्यान्वयन (इतने सारे एक वर्ग में नकली सुविधाओं) कर रहे हैं।

मुझे इन शब्दावली में उलझन में आया और मैं यह जानना चाहता हूं कि इन दो ब्लोटेड क्लास और टैग की गई कक्षा के बीच क्या अंतर है ??

उत्तर

4
  • एक ब्लोटेड वर्ग फूला हुआ है (नीचे देखें)।
  • एक टैग की गई कक्षा में एक या अधिक टैग हैं।
  • एक टैग की गई कक्षा संभवतः फूला हुआ है, एक सूजन वर्ग को टैग नहीं किया जाना चाहिए।

"ब्लोटेड" (कुछ हद तक) व्यक्तिपरक है, "टैग किया गया" पहचानने के लिए तुच्छ है। "ब्लोट" कई चीजों का उल्लेख कर सकता है; चिंताओं के खराब अलगाव, लापता encapsulation, abstractions के विभिन्न स्तर, और इतने पर।

"टैग की गईं" क्योंकि वहाँ एक क्षेत्र है कि कार्यक्षमता, अमूर्त की जुदाई को परिभाषित करता है, आदि

+1

हो जाएगा मैं अब कुछ दृश्य धन्यवाद मिला कम व्यक्तिपरक है, :) – Prashant

संबंधित मुद्दे