No exemplo utilizado no módulo 04. Expressividade pelo Builder, nada impede que o desenvolvedor instancie a classe NotaFiscal e sete os valores para seus atributos. Como posso "forçar" o desenvolvedor utilizar a classe ConstrutorNotaFiscalProduto por exemplo, e não a classe NotaFiscal direto? Pensei em implementar os métodos construtores dentro da NotaFiscal e mudar os atributos para private, seria correto? Obrigado.