ใช้การประกอบแทนการสืบทอด
ประกอบพฤติกรรมจากออบเจกต์ที่ทำงานร่วมกัน
ทำงานอย่างไร
การประกอบช่วยให้คลาสโฟกัสงานเดียวและเลี่ยงลำดับการสืบทอดที่แข็งตัว
Order มอบการคำนวณราคาให้รายการสินค้าของมัน ออบเจกต์แต่ละตัวมีหน้าที่ชัดเจนหนึ่งอย่าง
ตัวอย่าง C# ที่รันได้
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
record LineItem(string Name, decimal Price);
class Order
{
public List<LineItem> Items { get; } = new();
public decimal Total => Items.Sum(item => item.Price);
}
class Program
{
static void Main()
{
var order = new Order();
order.Items.Add(new("Book", 30m));
order.Items.Add(new("Pen", 5m));
Console.WriteLine(order.Total);
}
}
35ฝึกกับดีบักเกอร์
ตั้ง breakpoint ที่การกำหนดค่าหรือเงื่อนไขสำคัญ กด Debug แล้วดูค่าตัวแปรภายในก่อนไปยังบรรทัดถัดไป