Implementação idiomática de hierarquias estruturais complexas em go
a falta de herança e apoio à incorporação da representação de hierarquias estruturais complexas não triviais. O uso do GO do compilador de métodos vazios em sua implementação AST levantou questões sobre sua eficácia. interface, garantindo que tipos incompatíveis não possam ser atribuídos um ao outro. campos e métodos, criando uma forma de herança. Ao incorporar as estruturas apropriadas de maneira hierárquica, podemos reduzir a necessidade de métodos vazios. --Imtovable ----Prédio ----Montanha --Móvel ----Carro ---- Bike
Implementação do objeto:
TIPE RESPIRAÇÃO DO RESPONSÁRIO { objeto() } Digite ObjectImpl struct {} func (o *objectImpl) object () {}
TIPO CONSTRUÇÃO STRUCT { Implementação imóvel // campos adicionais específicos para o edifício }
implementação móvel:
digite interface móvel { Objeto móvel() } Tipo MovableImpl struct { ObjectImpl // Implementação de objeto incorporado } func (m *movableImpl) Movable () {}
implementação do carro:
Object --Immovable ----Building ----Mountain --Movable ----Car ----Bike
Exemplo de uso:
type Object interface { object() } type ObjectImpl struct {} func (o *ObjectImpl) object() {}
vantagens de incorporar:
type Immovable interface { Object immovable() } type ImmovableImpl struct { ObjectImpl // Embedded Object implementation } func (i *ImmovableImpl) immovable() {}número reduzido de métodos vazios, levando a strates mais limpos e mais simples. tipos, simplificando a implementação.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3