मैं हूँ एक पूर्व अजगर देव कभी कभी के साथ संघर्ष के स्पष्ट प्रकृति के लिए जाना. मैं कोशिश कर रहा हूँ करने के लिए यहाँ कुछ कोड refactor क्रम में सक्षम होना करने के लिए ले जाने की एक विधि से एक संरचना का हिस्सा बनने के लिए एक इंटरफेस है. लेकिन इस प्रक्रिया में अजीब लगता है, मुझे करने के लिए, मैं पुष्टि करना चाहते हैं मैं नहीं कर रहा हूँ कुछ ग़लत ढंग से ।
मैं निम्नलिखित इंटरफेस, संरचना और तरीकों:
type Executing interface {
Execute()
}
type MyExecuter struct {
attribut1 string
}
//The function I wish to move
func (exe1 *MyExecuter) format() string {
return fmt.sprintf ("formated : %s", exe1.attribut1)
}
func (exe1 *MyExecuter) Execute() {
//Executing
fmt.Println(exe.format())
}
func GetExecuter () Executer{
return MyExecuter{attribut1: "test"}
}
तो यहाँ मैं एक सामान्य इंटरफ़ेस को निष्पादित, इस इंटरफेस के द्वारा पहुँचा जा जाएगा वस्तु से लौटे GetExecuter विधि है ।
अब, के रूप में के भाग के कार्यान्वयन के Executer, मैं ले जाना चाहते हैं प्रारूप विधि के भाग के रूप में एक इंटरफेस है.
तो मैं कर रहा हूँ निम्नलिखित है:
type Formatting interface {
format() string
}
type Formatter struct {}
func (formatter *Formatter) format(exe1 *MyExecuter) (string) {
return fmt.sprintf ("formated : %s", exe1.attribut1)
}
इसलिए मैं बनाने के लिए एक नया इंटरफेस, एक नई संरचना, और अद्यतन कार्य करने के लिए ले के रूप में विशेषता मेरे पिछले संरचना है ।
जबकि यह काम करने लगता है, यह मुझे लगता है यह थोड़ा जटिल है । विशेष रूप से हिस्सा है जहां मैं एक संदर्भ जोड़ने की जरूरत करने के लिए अपने प्रारंभिक वस्तु के रूप में की विशेषता विधि है । मैं कर रहा हूँ यहाँ कुछ गलत है, या यह सही तरीका है?