Entendendo os recursos de programação orientados a objetos em JavaScript
Olá! Eu sou Maneshwar. Atualmente, estou construindo uma ferramenta privada de revisão de código de IA que é executada na sua chave LLM (Openai, Gêmeos, etc.) com preços planos e sem assentos-projetados para pequenas equipes. Confira, se esse é o seu tipo de coisa. A programação orientada a objetos (OOP) é um paradigma que organiza o código em objetos-sundimentos de dados (propriedades) e comportamento (métodos). Embora o modelo OOP da JavaScript seja baseado em protótipo, em vez de baseado em classe, como Java ou C#, o ES6 introduziu a sintaxe da classe, fazendo com que se sinta muito mais próximo do OOP tradicional. Neste post, exploraremos quatro conceitos importantes de OOP e como eles se aplicam em JavaScript: classes abstratas, classes concretas, visibilidade do escopo e interfaces. 1. Classes abstratas Uma classe abstrata é uma classe que atua como um plano – ela não pode ser instanciada diretamente. Em vez disso, outras classes herdam e implementam seus métodos abstratos. O JavaScript não possui classes abstratas nativas como Java, mas podemos imitá -las: classe Shape {construtor () {if (new.target === Shape) {lança um novo erro (“Não é possível instanciar uma classe abstrata”); }} // Método abstrato (sem implementação) draw () {throw novo erro (“o método de desenho deve ser implementado”); }} classe Circle estende a forma {draw () {console.log (“desenhando um círculo”); }} const Circle = new Circle (); circ.draw (); // desenhando um círculo const forma = new Shape (); // Erro: Não é possível instanciar uma classe abstrata, insira o modo de saída de tela cheia de tela cheia quando usar: para aplicar uma estrutura comum para classes relacionadas. Compartilhar a implementação parcial e forçar subclasses a preencher os detalhes. 2 Classes de concreto Uma classe de concreto é uma classe totalmente implementada a partir da qual você pode criar objetos. Ele implementa todos os métodos de sua classe abstrata dos pais ou fica sozinho. classe retângulo {draw () {console.log (“desenhando um retângulo”); }} const ret = new Rectangle (); Rect.Draw (); // Desenhando um retângulo Digite o modo de saída de tela cheia de tela cheia quando usar: quando você tiver uma implementação completa que pode ser usada diretamente. Quando você deseja definir um comportamento exclusivo para um tipo de objeto específico. 3. A visibilidade do escopo da visibilidade do escopo determina onde e como uma propriedade ou método de classe pode ser acessada. No JavaScript, o ES2022 introduziu campos verdadeiramente privados usando #, enquanto o público é o padrão. Público – acessível em qualquer lugar. Privado (#) – acessível apenas dentro da classe. Protegido – não é oficialmente apoiado em JavaScript, mas muitas vezes imitou usando convenções de nomenclatura como _protecte. Exemplo: classe conta {#Balance = 0; // Construtor de campo privado (proprietário) {this.owner = proprietário; // public} depósito (valor) {this.#Balance += vale; } getBalance () {return th This.#Balance; }} const Acc = new Account (“Alice”); acc.deposit (100); console.log (acc.getBalance ()); // 100 console.log (Acc.#Balance); // ❌ ERRO ENTER MODO DE VELADA COMPLETA Modo de tela cheia 4. Interfaces JavaScript não possui interfaces nativas como Java ou TypeScript, mas podemos simulá -las com padrões ou aplicá -los em tempo de execução. Exemplo usando uma verificação manual: const shapeInterface = {draw: “function”,}; função implemmentsInterface (obj, interfeacef) {for (let method in interfeacef) {if (typeof obj[method] ! == InterfaceDef[method]) {tire novo erro (`classe deve implementar $ {Method} como um $ {interfaceDef[method]} `); }}} classe triângulo {draw () {console.log (“desenhando um triângulo”); }} const tri = new Triangle (); implemmentsInterface (TRI, ShapeInterface); // passa Tri.Draw (); // Desenho de um triângulo Digite o modo de saída de tela cheia no modo de tela cheia quando usar: para garantir que diferentes classes compartilhem um contrato comum. Para tornar o código mais flexível e polimórfico. Pensamentos finais, enquanto o JavaScript não implementa recursos OOP exatamente como Java ou C#, é flexível o suficiente para imitar classes abstratas, interfaces e controles de visibilidade. Os recursos do ES6+ aproximaram o JavaScript da OOP tradicional, enquanto ainda preservava suas raízes baseadas em protótipo. Se você está escrevendo aplicativos JS escaláveis e sustentáveis, esses conceitos são inestimáveis para estruturar seu código. O LiveReview ajuda você a obter ótimos comentários sobre seu PR/MR em alguns minutos. Economiza horas em todos os relações públicas, dando críticas rápidas e automatizadas de primeira passagem. Ajuda os dois engenheiros juniores/seniores a irem mais rápido. Se você está cansado de esperar que seu colega revise seu código ou não esteja confiante de que eles fornecerão feedback válido, aqui está o LiveReview para você.
Fonte
Publicar comentário