"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Dominando classes seladas em Java

Dominando classes seladas em Java

Publicado em 2024-08-07
Navegar:229

Mastering Sealed Classes in Java

Classes seladas, introduzidas no Java 15 como um recurso de visualização e tornadas permanentes no Java 17, permitem que os desenvolvedores controlem quais classes podem estendê-las ou implementá-las. Este recurso faz parte do Projeto Amber, que visa melhorar a produtividade do desenvolvedor, aprimorando a linguagem Java com recursos pequenos, mas poderosos.

O que são aulas seladas?

Classes seladas são um novo tipo de classe que restringe quais outras classes ou interfaces podem estendê-las ou implementá-las. Isso é feito para fornecer uma hierarquia de tipos mais robusta e sustentável. Ao definir uma classe selada, você especifica um conjunto de subclasses permitidas.

Benefícios das aulas seladas

  1. Herança controlada: Ao especificar quais classes podem estender uma classe selada, você obtém melhor controle sobre sua hierarquia de classes e garante que ela permaneça bem definida e fácil de manter.
  2. Correspondência exaustiva de padrões: classes seladas funcionam bem com recursos de correspondência de padrões, permitindo ao compilador verificar se todos os casos possíveis foram cobertos.
  3. Legibilidade e capacidade de manutenção aprimoradas: estruturas de herança claramente definidas melhoram a legibilidade e a capacidade de manutenção do código.

Definindo uma classe selada

Para definir uma classe selada, você usa a palavra-chave selada e especifica as subclasses permitidas com a cláusula permits. Aqui está um exemplo:

public sealed class Shape permits Circle, Rectangle, Square {
    // class body
}

public final class Circle extends Shape {
    // class body
}

public final class Rectangle extends Shape {
    // class body
}

public final class Square extends Shape {
    // class body
}

Neste exemplo, Shape é uma classe selada e apenas Circle, Rectangle e Square podem estendê-la. Cada subclasse deve ser final, lacrada ou não lacrada.

Usando classes seladas

Classes seladas podem ser usadas para modelar estruturas hierárquicas onde o conjunto de subclasses é conhecido e fixo. Isso é particularmente útil na modelagem de domínio e ao trabalhar com tipos de dados algébricos.

Aqui está um exemplo de uso de classes seladas com correspondência de padrões:

public class SealedClassExample {
    public static void main(String[] args) {
        Shape shape = new Circle(5);

        String result = switch (shape) {
            case Circle c -> "Circle with radius "   c.radius();
            case Rectangle r -> "Rectangle with width "   r.width()   " and height "   r.height();
            case Square s -> "Square with side "   s.side();
        };

        System.out.println(result);
    }
}

Neste exemplo, usamos uma expressão switch para lidar com diferentes tipos de Shape. O compilador pode garantir que todos os casos possíveis sejam cobertos porque o Shape está selado.

Conclusão

As classes seladas são uma adição poderosa ao Java, fornecendo melhor controle sobre as hierarquias de classes e melhorando a legibilidade e a manutenção do código. Usando classes seladas, você pode criar sistemas de tipos mais robustos e bem definidos em seus aplicativos Java.

Declaração de lançamento Este artigo está reproduzido em: https://dev.to/adaumircosta/mastering-sealed-classes-in-java-3md?1 Se houver alguma infração, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

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