15 minpresentation

Composite Pattern Structure

Composite Pattern Structure

0 / 7 completed

Basic Implementation

typescript
1// Component interface
2interface ShippingUnit {
3 getWeight(): number;
4 getDimensions(): Dimensions;
5 getItemCount(): number;
6 accept(visitor: ShippingVisitor): void;
7}
8
9// Leaf
10class Item implements ShippingUnit {
11 constructor(
12 public readonly sku: string,
13 private weight: number,
14 private dimensions: Dimensions
15 ) {}
16
17 getWeight(): number {
18 return this.weight;
19 }
20
21 getDimensions(): Dimensions {
22 return this.dimensions;
23 }
24
25 getItemCount(): number {
26 return 1;
27 }
28
29 accept(visitor: ShippingVisitor): void {
30 visitor.visitItem(this);
31 }
32}
Step 1 of 7
← → NavigateSpace: Skip / NextEnter: Next