ลองนึกภาพสถานการณ์ที่เรากำลังใช้ห้องสมุดที่อนุญาตให้คุณสร้างCircle
วัตถุที่คุณสามารถระบุรัศมีและศูนย์กลางของวงกลมเพื่อกำหนด อย่างไรก็ตามด้วยเหตุผลบางอย่างมันยังใช้flavour
พารามิเตอร์ที่จำเป็น ตอนนี้สมมติว่าฉันจำเป็นต้องใช้Circle
ในแอพของฉันเอง แต่สำหรับวัตถุประสงค์ของแอพของฉันฉันสามารถกำหนดรสชาติให้เป็นFlavours.Cardboard
ทุกครั้ง
ในการ "แก้ปัญหา" สิ่งนี้ฉันสร้างCircle
คลาสของตัวเองในเนมสเปซที่ต่างกันซึ่งใช้radius
และcenter
เป็นพารามิเตอร์เท่านั้น แต่มีตัวแปลงโดยนัยไปยังCircle
คลาสของไลบรารีภายนอกซึ่งเพิ่งสร้างCircle(this.radius, this.center, Flavours.Cardboard)
วัตถุ ดังนั้นทุกที่ที่ฉันต้องการประเภทอื่นCircle
ฉันจะให้การแปลงอัตโนมัติเกิดขึ้น
อะไรคือผลของการสร้างชั้นเรียนดังกล่าว? มีวิธีแก้ปัญหาที่ดีกว่านี้ไหม? มันจะสร้างความแตกต่างหรือไม่ถ้าแอปพลิเคชันของฉันเป็น API ที่สร้างอยู่บนห้องสมุดภายนอกนี้มีไว้สำหรับใช้งานโดยโปรแกรมเมอร์อื่น ๆ ?
MakeCircle
ฟังก์ชั่น ?
makePlayer
ตัวเองเท่านั้นที่ยอมรับ coords เพื่อวางผู้เล่นที่ แต่มอบหมายให้ผู้สร้างที่ซับซ้อนมากขึ้น