나는 golang을 처음 사용했습니다. 입력에 따라 다른 유형의 객체를 만드는 함수를 디자인해야합니다. 하지만 인터페이스 디자인 방법을 찾지 못했습니다. 내 코드는 다음과 같습니다.골란의 객체 팩토리
package main
import (
"fmt"
)
type AA struct{
name string
}
func (this *AA) say(){
fmt.Println("==========>AA")
}
type BB struct{
*AA
age int
}
func (this *BB) say(){
fmt.Println("==========>BB")
}
func ObjectFactory(type int) *AA {
if type ==1 {
return new(AA)
}else{
return new(BB)
}
}
func main() {
obj1 := ObjectFactory(0)
obj1.say()
obj2 := ObjectFactory(0)
obj2.say()
}
컴파일러에서 ObjectFactory 반환 * AA 또는 interface {}를 요청해도 오류가 발생합니다. 어떻게 작동시킬 수 있습니까?
무엇 정확한을 오류가 발생합니까? 컴파일러에서 잘못되었다고 알리는 행은 무엇입니까? – user2357112
Go에서 기존 OOP 관용구를 에뮬레이트하려는 것처럼 보일 수도 있습니다 (또는 강제 적용). 이것은 좋은 생각이 아니므로 솔루션을 다시 설계하는 것이 좋습니다 . – Volker