Executando verificação de segurança...
1

Atributos estáticos de uma classe podem conservar características globais do domínio do problema. Uma classe de Pessoa pode ter constantes, por exemplo, chamadas PF = 1 e PJ = 2. Isso modela no domínio que só podem haver dois tipos de pessoas: física e jurídica.

Você também pode ter também um método estático chamado find, que retorna uma lista de pessoas com determinados critérios de busca.

Os dois exemplos que eu dei extrapolam as características de determinada instância, mas ainda se concentram no domínio do assunto de pessoas. É justo estar modelado na classe Pessoa.

Carregando publicação patrocinada...
1

Esse find() procura pessoas onde?

De fato poderia ter constantes (final) para dar nomes aos números para o tipo de pessoa, se o requisito indicar isso. Também pode ser um erro também colocar os dois tipos (ou outros, e tem) ter mais de um tipo na mesma classe, então Pessoa seria abstrata para apenas classes concretas de cada tipo herdar, se o requisito pedir, e se ele for real, costuma pedir.

1

O método estático find que eu dei de exemplo poderia buscar na base por pessoas.

No padrão Active Record, é normal você mesclar persistência com regras de negócio do domínio.

Herança é um inferno. Composição geralmente resolve. Sendo assim, um tipo pode conter muitos outros.
O que são os fields senão outros tipos?!