Como projetar uma entidade comercial genérica e ainda ser OO?

Estou trabalhando em um produto empacotado que deveria atender a vários clientes com requisitos variados (até certo ponto) e, como tal, deve ser construído de maneira a ser flexível o suficiente para ser personalizável por cada cliente específico. O tipo de personalização de que estamos falando aqui é que clientes diferentes podem ter atributos diferentes para alguns dos principais objetos de negócios. Além disso, eles poderiam ter diferentes lógicas de negócios ligadas a seus atributos adicionais também

Como um exemplo muito simplista: Considere "Automóvel" como uma entidade comercial no sistema e, como tal, possui 4 atributos-chave, como Número do veículo, Ano do fabrico, Preço e Cor.

É possível que um dos clientes que utiliza o sistema adicione mais 2 atributos ao Automobile, nomeadamente ChassisNumber e EngineCapacity. Esse cliente precisa de alguma lógica comercial associada a esses campos para validar que o mesmo número de chassi não exista no sistema quando um novo automóvel for adicionado.

Outro cliente precisa apenas de um atributo adicional chamado SaleDate. SaleDate tem sua própria lógica de negócios, que valida se o veículo não existe em alguns registros policiais como veículo roubado quando a data da venda é inserida

A maior parte da minha experiência tem sido principalmente na criação de aplicativos corporativos para um único cliente e estou realmente lutando para ver como lidar com uma entidade comercial cujos atributos são dinâmicos e também com capacidade de ter lógica comercial dinâmica, bem como em um paradigma orientado a objetos.

Assuntos chave

Existem princípios / padrões gerais de OO que me ajudariam a lidar com esse tipo de design?

Tenho certeza de que as pessoas que trabalharam em produtos genéricos / embalados enfrentariam cenários semelhantes na maioria deles. Qualquer conselho / indicação / orientação geral também é apreciado.

Minha tecnologia é .NET 3.5 / C # e o projeto possui uma arquitetura em camadas com uma camada de negócios que consiste em entidades de negócios que abrangem sua lógica de negócios

questionAnswers(7)

yourAnswerToTheQuestion