>백엔드 개발 >Golang >golang에는 팩토리 클래스가 있나요?

golang에는 팩토리 클래스가 있나요?

青灯夜游
青灯夜游원래의
2023-01-03 16:58:593908검색

golang은 클래스를 지원하지 않기 때문에 팩토리 클래스가 없습니다. golang에는 명확한 객체 지향 선언문이 없으며 다음과 같은 이유로 객체 지향 언어로 간주할 수 없습니다. 1. golang은 캡슐화만 지원하고 상속 및 다형성을 지원하지 않습니다. 2. golang에는 구조체만 있고 클래스가 없습니다. 물론 구조체는 다른 언어의 클래스와 비교할 수도 있습니다.

golang에는 팩토리 클래스가 있나요?

이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.

golang은 클래스를 지원하지 않기 때문에 팩토리 클래스가 없습니다.

golang에는 명확한 객체지향문이 없으며, 객체지향언어라고 볼 수도 없습니다. 왜냐하면:

  • golang은 상속과 다형성이 아닌 캡슐화만 지원합니다.

  • golang은 구조체만 있고 클래스는 없습니다.

정말로 연결하고 싶다면 구조체를 다른 언어의 클래스와 비교할 수 있습니다.

클래스 선언

type Poem struct {
    Title  string
    Author string
    intro  string
}

공개, 보호 또는 비공개 선언 없이 클래스를 선언합니다.

Golang은 속성 액세스 권한을 구현하기 위해 또 다른 접근 방식을 사용합니다. 속성의 첫 글자가 대문자인 경우 다른 패키지에서 액세스할 수 있고, 그렇지 않으면 이 패키지에서만 액세스할 수 있습니다. 클래스 선언과 메소드도 마찬가지입니다.

클래스 메서드 선언

func (poem *Poem) publish() {
    fmt.Println("poem publish")
}

또는

func (poem Poem) publish() {
    fmt.Println("poem publish")
}

은 다른 언어와 다릅니다. golang 선언 방법은 func 뒤에 poem Poem과 같은 선언이 추가된다는 점을 제외하면 일반적인 방법과 동일합니다. *를 추가하는 것과 추가하지 않는 것의 차이점은 하나는 포인터 객체를 전달하고 다른 하나는 값 객체를 전달한다는 것입니다.

【관련 추천: Go 비디오 튜토리얼, 프로그래밍 교육

위 내용은 golang에는 팩토리 클래스가 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.