Eu diria que o blog de Noel Llopis é provavelmente a melhor instrução para uma combinação de programação orientada a objetos e design orientado a dados. Ele é um dos criadores do termo DOD, é um forte programador de C ++ e escreveu bastante sobre seu estilo e como ele tira proveito dos recursos de OO do C ++.
Eu acho que se eu chamar os elementos principais de combiná-los, de acordo com Noel:
- Use as funções POD e não membro e não amigo, tanto quanto possível. As funções não membros e não amigas melhoram o encapsulamento e são uma parte essencial da orientação aos dados, pois mantêm os dados, dados.
- Evite armazenar o estado "temporário" em seus objetos. O estado temporário obstrui seus dados. Se você precisar armazenar em cache algo (por exemplo, desempenho), que pertença a uma nova classe, com funções não pertencentes a não-amigos vinculando os dois tipos, não é um relacionamento nem é nem tem.
- Evite objetos que possam estar no estado A ou no estado B. Prefira alternar entre dois objetos, um dos quais é A e um dos quais é B.
- Evite polimorfismo, evite funções virtuais, evite modelos, evite qualquer coisa que faça com que seus dados tenham a aparência sintática da mesmice, e não da mesmice real .
O outro grande nome da propaganda do DOD agora é Mike Acton, do Insomniac, mas, lendo o que ele escreveu, eu diria que ele não é realmente pró-OO (ou anti-OO, desde que ainda seja orientado a dados).