Go 상속: 대체 접근 방식
Go는 상속보다 구성을 강조하지만 유사한 기능을 달성하기 위한 메커니즘을 제공합니다. 확장 가능한 메서드와 함께 재사용 가능한 기본 구조체를 제공하기 위한 일반적인 전략은 임베딩을 활용하는 것입니다.
상위 구조체 메서드에 의존하는 대신 임베디드 구조체는 둘러싸는 구조체의 컨텍스트 내에서 자체 메서드에 대한 액세스를 제공합니다. . 작동 방식은 다음과 같습니다.
// Define narrow interfaces type MyReader interface { Read() } type MyWriter interface { Write() } // Create a composite interface type MyReadWriter interface { MyReader MyWriter } // Create structs implementing the interfaces type ReaderStruct struct {} func (r *ReaderStruct) Read() {} type WriterStruct struct {} func (w *WriterStruct) Write() {} // Embed the structs into a composite struct type ReadWriterStruct struct { *ReaderStruct *WriterStruct } func (rw *ReadWriterStruct) DoStuff() { rw.Read() rw.Write() } func main() { rw := &ReadWriterStruct{} rw.DoStuff() }
이 예에서 ReadWriterStruct는 삽입으로 인해 판독기와 기록기 역할을 모두 수행할 수 있습니다. 구조체를 상속하는 대신 구조체를 구성함으로써 Go는 모듈화와 더 나은 기능 캡슐화를 촉진합니다.
위 내용은 Go가 구성을 통해 상속과 유사한 동작을 어떻게 달성할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!