15 minpresentation

Facade Design Principles

Facade Design Principles

0 / 7 completed

Single Entry Point

typescript
1// Good: One facade for shipping operations
2class ShippingFacade {
3 async ship(order: Order): Promise<ShipmentResult> { }
4 async track(trackingNumber: string): Promise<TrackingInfo> { }
5 async estimateDelivery(from: Address, to: Address): Promise<Date> { }
6 async getRates(from: Address, to: Address, weight: number): Promise<Rate[]> { }
7}
8
9// Client only needs to know about ShippingFacade
10const shipping = new ShippingFacade(/* dependencies */);
11const result = await shipping.ship(order);
Step 1 of 7
← → NavigateSpace: Skip / NextEnter: Next