#input #3็ซ ใชใใธใงใฏใๆๅ
- [[๐๏ธใชใใธใงใฏใๆๅ]]ใงๅฎๅ
จใซไธ็ใๅ็พใฏใงใใชใใ
- [[๐๏ธ้ขๆฐๅใใญใฐใฉใใณใฐ]]ใฎๅฏพๆฏ้ขไฟใซใใใใฎใงใฏใชใใ
- ๆ็ถใๅใงใใใจใใ็ถๆ
ใใใฃใฆใใใใจใ[[๐๏ธใชใใธใงใฏใๆๅ]]ใงใฏใชใใ
## 3-2 [[๐๏ธใซใใปใซๅ]]
### ใซใใปใซๅใงๅพใใใใกใชใใ
- [[๐๏ธๅ้ๅบฆ]]ใ้ซใใใใจใใงใใใ
- ไพ) ่ชๅ่ปใฎๆไฝ
- ใจใณใธใณใฎ่ฉณ็ดฐใ็ฅใใชใใฆใ่ชๅ่ปใๅใใใใจใใงใใ
- ใจใณใธใณใฏ[[๐๏ธใซใใปใซๅ]]ใใใใณใณใใผใใณใใๅใใใฎใฏใๆๅฐ้ใฎๆไฝใซใชใใใใซใชใฃใฆใใใ
- [[๐๏ธใใกใใซใฎๆณๅ(ๆๅฐ็ฅ่ญใฎๅๅ)]]
- ๐คใใคใใใชใใ ใฃใใใ๏ผใฃใฆใชใใใคใ ใ
- ใกใฝใใใใงใผใณใ็ฆๆญขไบ้
ใซใชใใ
```php:NGไพ
class CarOwner {
public function drive()
{
$this->car->getEngine()->start
}
}
```
- "Tell, Don't Ask"ใฏๅๆงใ ๆฝ่ฑกใฏใฉใน
## 3-3 [[๐๏ธๅคๆ
ๆง(ใใชใขใผใใฃใบใ )]]
- Interfaceใไฝฟใฃใฆใๅใใกใฝใใใๆใคๅฅใกใฝใใใ็ตใฟ่พผใใ ใใงใใใ
- ifๆใๆธใใใ
- [[๐๏ธใใใฏใฟใคใใณใฐ]]
## 3-4 [[๐๏ธ็ถๆฟ]]
- ใณใผใใๅๅฉ็จใใใใ ใใงใใใฐ ใ[[๐๏ธ็ถๆฟ]]ใงใฏใชใ[[๐๏ธๅง่ญฒ(ใณใผใ)]]ใไฝฟใฃใๆนใใใใ
- ไพ) ใจใณใธใณใ็ถๆฟใใฆ่ชๅ่ปใไฝใฃใใใ่พใใ
- [[๐๏ธๅทฎๅใใญใฐใฉใใณใฐ]]ใ ใใ็ฎ็ใซใใใฎใงใใใฐใ[[๐๏ธ็ถๆฟ]]ใฏไธ่ฆใ
- [[๐๏ธๆฝ่ฑกใฏใฉใน]]ใจ[[๐๏ธๅ
ท่ฑกใฏใฉใน]]ใฎ้ขไฟใ่ฆๅบใใใใจใๅคงๅใ
- ๆฝ่ฑก: Pet
- ๅ
ท่ฑก: cat, dog
- is-a้ขไฟ
- [[๐๏ธๆฝ่ฑกใฏใฉใน]]ใ่ฆใคใใใใใใใฑใผใธใฏๅฎๅฎใใใใใจใใงใใใฎใงใ[[๐๏ธๅฎๅฎไพๅญใฎๅๅ(SDP)]]ใฎๆนๅใฅใใซๅฝน็ซใคใ
- ๐ค ่ชๅใฏใใใฎ่ฆณ็นใใชใใฃใใใใ[[๐๏ธ็ถๆฟ]]ใฏ[[๐๏ธ็ตๅๅบฆ]]ใ้ซใใชใใใใใใชใใจ็ก้ใซ่ใใฆใใพใฃใฆใใใ