8
खुद को इस डिजाइन पैटर्न की आधिकारिक परिभाषा के लिए एक लिंक खोजने का प्रयास कर रहा है, जो मुझे विश्वास है कि मैंने गो 4 में देखा था लेकिन इसे कहीं भी नहीं ढूंढ सकता।इस पैटर्न को क्या कहा जाता है (प्रकार कास्टिंग से बचने में मदद करता है)?
class Processor{
ProcessParameter(AbstractParameter x){
x.Process(this);
}
ProcessParameter(ParameterA x){
... A-specific logic...
}
ProcessParameter(ParameterB x){
... B-specific logic...
}
}
abstract class AbstractParameter{
abstract void Process(Processor p);
}
class ParameterA : AbstractParameter{
override void Process(Processor p){
p.ProcessParameter(this);
}
}
class ParameterB : AbstractParameter{
override void Process(Processor p){
p.ProcessParameter(this);
}
}
मुझे आपके उत्तर का पहला संस्करण बेहतर पसंद आया। यह _is_ डबल डिस्पैच। विज़िटर पैटर्न _multiple_ विज़िटर (मेरे उदाहरण में "प्रोसेसर" कहा जाता है) की धारणा जोड़ता है। – zvolkov
शीर्षक ने "पैटर्न" के लिए पूछने के बाद से जोर दिया, और सवाल गोफ को संदर्भित करता है। – erickson