Martin Fowler, um cara com mania de Aristóteles, resolver dar (outros) nomes a padrões e arquiteturas existentes. IoC (Inversion of Control) mudou seu nome para DI* (Dependency Injection) e DAO (Data Access Object) foi rebatizado com o nome de TDG (Table Data Gateway).
Segundo Fowler, TDG é uma das 3 especializações do DAO: uma que trata de acesso a dados relacionais (a própria TDG), uma que trata de acesso a dados hierárquicos (HDG) e outra que trata de acesso a dados em arquivos binários/texto (SDG, de Stream Data Gateway).
Mas será que estes nomes são realmente adequados?
No caso dos *DGs, não. Afinal desta forma, você estaria informando, desnecessariamente, ao usuário com qual tipo de fonte de dados, por exemplo, o objeto MyTDG vai lidar, sendo que só bastaria ao usuário saber que ele vai obter os dados que ele precisa dada uma fonte de dados qualquer (seja ela um XML, um banco de dados relacional ou um arquivo binário), que é a idéia do padrão DAO.
[size=“9”]*- sobre DI, o Carlos pode falar melhor[/size]
p.s.: esqueçam tudo o que eu falei sobre HDG e SDG. ESQUEÇAM!! eles não existem de fato.