Adapter Pattern vs Proxy Pattern:
- intent: adapter makes an incompatible interface compatible, proxy controls access, add behavior, or delay creation
- who initiates: in adapter, client uses adapter to speak to old legacy code, in proxy client uses proxy as real object
- transparency: in adapter client knows, in proxy client may not know