Eu acho que você interpretou as imagens de uma maneira errada! As setas não representam a direção da chamada na minha opinião.
Quando você olha para a segunda imagem, é óbvio que a Implementação do Order Gateway implementa a interface Order Gateway e os objetos do tipo Order Gateway são usados a partir do tipo de cliente POS. Assim, a direção real da chamada é de cima para baixo, como você esperaria.
Esta é apenas uma aplicação do Strategy Pattern para separar a estrutura do seu banco de dados que está dentro da camada I / F do DB de sua interface que a camada de aplicação usa. Se você não tivesse a camada DB I / F, sua camada de aplicação provavelmente acessaria diretamente estruturas de DB específicas, o que definitivamente não seria o caminho certo para ser flexível com a tecnologia DB.
Editar:
Bem, vamos trazer a noção de DTOs para a nossa mente: Esses são objetos contendo certas quantidades de dados (comportamento não ) agregados para um propósito específico, geralmente para empurrá-los pela rede em sistemas distribuídos . Embora eles sejam usados nesse contexto como Tabela de Pedidos e Tabela de Itens de Linha, não há contradição em usar DTOs para visualizações, uma vez que as exibições também costumam estar vinculadas apenas aos dados.
O objetivo do DAO é, em primeiro lugar, encapsular o máximo possível de tecnologias de fontes de dados. Como o DAO não é apenas um único objeto, mas um padrão incluindo a interface e sua implementação, é possível mapear o padrão DAO diretamente para a interface Order Gateway e Order Gateway Implementation, sem dependências da camada de aplicativo para estruturas de dados específicas.