DEPENDENCY INVERSIONIf a class relies on another class, abstract that  การแปล - DEPENDENCY INVERSIONIf a class relies on another class, abstract that  ไทย วิธีการพูด

DEPENDENCY INVERSIONIf a class reli

DEPENDENCY INVERSION

If a class relies on another class, abstract that reliance.

The idea behind Dependancy Inversion is that whenever one class calls into another class, we should replace that call with some kind of abstraction to better insulate the classes from each other.

Most preferable is to replace the class dependance with an interface. So class A instead of calling methods in class B, actually calls methods of ISomeInterface which class B implements.

Another way is to introduce an abstract base class which class B inherits from. So class A treats class B as the base class instead of directly relying on class B itself.

The least preferable reliance, of course, is to have class A directly relying on class B. This is the one we want to avoid.

So in our previous example, those components may have a fairly tight coupling with each other. PlayerInput may rely on the presence of PlayerPhysics, WeaponManager may rely on the presence of Inventory, and so on.

Let’s abstract these.

IActorPhysics – Interface for classes which can accept input and presumably affect physics simulation

IDamageable – Interface for classes which can accept damage

IInventory – Interface for classes which can store and retrieve items

Now our PlayerPhysics implements IActorPhysics, our Health implements IDamageable, and our PlayerInventory implements IInventory.

So then PlayerInput just relies on the presence of some IActorPhysics, WeaponManager relies on the presence of some IInventory, and perhaps something which deals damage to our player relies on the presence of some IDamageable.

Dependancy Inversion helps reinforce Single Responsibility to some extent. PlayerInput shouldn’t care how the player moves, nor should it care what is going to move the player. Just that there’s something which promises that functionality.

Another thing to keep in mind is that SendMessage can accomplish the same goals in some cases.
0/5000
จาก: -
เป็น: -
ผลลัพธ์ (ไทย) 1: [สำเนา]
คัดลอก!
อ้างอิงกลับถ้าชั้นเรียนอาศัยคลาสอื่น บทคัดย่อที่พึ่งความคิดเบื้องหลัง Dependancy กลับเป็นว่า เมื่อชั้นเรียกเป็นชั้นอื่น เราควรแทนเรียกว่าบางชนิดของ abstraction ช่วยสอนกันดีกว่ากว่ามากที่สุดคือการ แทนดีเพนเดนซ์คลาสอินเทอร์เฟซ ดังนั้นคลาส A แทนการเรียกวิธีการในคลาส B เรียกวิธีการ ISomeInterface ซึ่ง class B ใช้จริงอีกวิธีหนึ่งคือการ แนะนำการที่คลาส B สืบทอดมาจากคลาสพื้นฐานนามธรรม ดังนั้น ชั้นขนม A คลาส B เป็นคลาสพื้นฐานแทนโดยตรงอาศัยในคลาส B เองความเชื่อมั่นที่น้อยกว่า แน่นอน จะมีคลาสเป็นโดยตรงอาศัยคลาสบี นี่คือหนึ่งที่เราต้องการหลีกเลี่ยงดังนั้นในตัวอย่างก่อนหน้านี้ของเรา ส่วนประกอบเหล่านั้นอาจมีการเชื่อมต่อกันค่อนข้างแน่น PlayerInput อาจพึ่งพาของ PlayerPhysics, WeaponManager อาจอาศัยสถานะของสินค้าคงคลัง และอื่น ๆลองบทคัดย่อเหล่านี้IActorPhysics – ฟิสิกส์อินเตอร์เฟซสำหรับการเรียนซึ่งสามารถรับการป้อนข้อมูล และน่าจะมีผลต่อการจำลองIDamageable – อินเตอร์เฟซสำหรับชั้นเรียนที่สามารถยอมรับความเสียหายIInventory – อินเตอร์เฟซสำหรับชั้นเรียนที่สามารถจัดเก็บ และเรียกคืนสินค้าตอนนี้ PlayerPhysics ของเราใช้ IActorPhysics สุขภาพของเราใช้ IDamageable และ PlayerInventory ของเราใช้ IInventorySo then PlayerInput just relies on the presence of some IActorPhysics, WeaponManager relies on the presence of some IInventory, and perhaps something which deals damage to our player relies on the presence of some IDamageable.Dependancy Inversion helps reinforce Single Responsibility to some extent. PlayerInput shouldn’t care how the player moves, nor should it care what is going to move the player. Just that there’s something which promises that functionality.Another thing to keep in mind is that SendMessage can accomplish the same goals in some cases.
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 2:[สำเนา]
คัดลอก!
DEPENDENCY INVERSION ถ้าชั้นขึ้นอยู่กับระดับอื่นนามธรรมที่ความเชื่อมั่น. คิดที่อยู่เบื้องหลัง dependancy ผกผันคือเมื่อใดก็ตามที่ชั้นหนึ่งเรียกร้องในชั้นเรียนอื่นเราควรเปลี่ยนสายที่มีชนิดของนามธรรมที่ดีกว่าการป้องกันชั้นเรียนจากกันและกัน. ที่นิยมมากที่สุด คือการเปลี่ยน Dependance ระดับด้วยอินเตอร์เฟซ ระดับดังนั้นแทนที่จะเรียกวิธีการในคลาส B ที่จริงเรียกวิธีการ ISomeInterface ซึ่งการดำเนินการระดับ B. อีกวิธีหนึ่งคือการแนะนำชั้นฐานนามธรรมคลาส B ซึ่งสืบทอดมาจาก ดังนั้นระดับคลาส B ถือว่าเป็นชั้นฐานโดยตรงแทนการพึ่งพาตัวเองคลาส B. ความเชื่อมั่นน้อยกว่าของหลักสูตรคือการได้เรียนโดยตรงอาศัยชั้นบีนี่คือหนึ่งเราต้องการที่จะหลีกเลี่ยง. ดังนั้นในของเรา ตัวอย่างก่อนหน้านี้ชิ้นส่วนเหล่านั้นอาจมีเพศสัมพันธ์ค่อนข้างแน่นกับแต่ละอื่น ๆ PlayerInput อาจพึ่งพาการปรากฏตัวของ PlayerPhysics, WeaponManager อาจพึ่งพาการปรากฏตัวของสินค้าคงคลังและอื่น ๆ . ขอนามธรรมเหล่านี้. IActorPhysics - อินเตอร์เฟซสำหรับการเรียนที่สามารถรับข้อมูลและน่าจะส่งผลกระทบต่อการจำลองฟิสิกส์IDamageable - อินเตอร์เฟซสำหรับการเรียนที่สามารถยอมรับความเสียหายIInventory - อินเตอร์เฟซสำหรับการเรียนที่สามารถจัดเก็บและเรียกรายการ. ตอนนี้เราดำเนิน PlayerPhysics IActorPhysics สุขภาพของเราดำเนิน IDamageable และ PlayerInventory ของเราดำเนิน IInventory ดังนั้นแล้ว PlayerInput เพียงอาศัยการปรากฏตัวของ IActorPhysics บาง WeaponManager อาศัยอยู่กับการปรากฏตัวของ IInventory บางและอาจ สิ่งที่สร้างความเสียหายให้กับผู้เล่นของเราขึ้นอยู่กับการปรากฏตัวของ IDamageable บาง. dependancy ผกผันจะช่วยเสริมสร้างความรับผิดชอบเดี่ยวที่มีขอบเขต PlayerInput ไม่ควรสนใจวิธีการย้ายผู้เล่นไม่ควรดูแลสิ่งที่จะย้ายไปเล่น เพียงแค่ว่ามีบางสิ่งบางอย่างที่สัญญาการทำงานที่. สิ่งที่จะต้องเก็บไว้ในใจก็คือว่า SendMessage สามารถบรรลุเป้าหมายเดียวกันในบางกรณี



























การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 3:[สำเนา]
คัดลอก!
การผกผัน

ถ้าเรียนอาศัยชั้นอื่น เป็นที่พึ่ง

ความคิดที่อยู่เบื้องหลังการ dependancy คือเมื่อใดก็ตามที่ชั้นโทรเข้าห้องอื่น เราควรจะเปลี่ยนโทรศัพท์กับบางชนิดของสิ่งที่เป็นนามธรรมได้ดียิ่งขึ้น ป้องกันวิชาจากแต่ละอื่น ๆ .

ส่วนใหญ่ที่นิยมคือการเปลี่ยนคลาสเมืองขึ้นด้วย อินเตอร์เฟซ ดังนั้นแทนที่จะเรียกวิธีการเรียนในคลาสบีที่จริงเรียกวิธีการ isomeinterface ซึ่ง Class B ใช้

วิธีอื่นจะแนะนำให้ชั้นฐานนามธรรมที่สืบทอดจากคลาส B . งั้นชั้นถือว่าชั้น B เป็นชั้นฐานแทน โดยอาศัยห้อง B เอง

อ้างอิง อย่างน้อยดีกว่าแน่นอน ไม่มีชั้นโดยตรงอาศัย Class B . นี่คือหนึ่งที่เราต้องการที่จะหลีกเลี่ยง

ดังนั้นในตัวอย่างก่อนหน้านี้ของเราส่วนประกอบเหล่านั้นอาจมีการเชื่อมต่อค่อนข้างแน่นกับแต่ละอื่น ๆ playerinput อาจพึ่งตนของ playerphysics weaponmanager , อาจใช้สถานะของสินค้าคงคลัง และอื่น ๆ .

ขอนามธรรมเหล่านี้

iactorphysics –สำหรับชั้นเรียนที่สามารถรับข้อมูล และน่าจะส่งผลกระทบต่อฟิสิกส์จำลอง

idamageable –สำหรับชั้นเรียนที่สามารถรับความเสียหาย

ติดต่อ– iinventory เรียนซึ่งสามารถจัดเก็บและเรียกดูรายการ

ตอนนี้ playerphysics ของเราใช้ iactorphysics สุขภาพ ของเราใช้ idamageable และ playerinventory ของเราใช้ iinventory

งั้น playerinput แค่อาศัยการแสดงตนของบาง iactorphysics weaponmanager อาศัย , การปรากฏตัวของ iinventory บาง ,และบางทีสิ่งที่สร้างความเสียหายให้กับผู้เล่นของเราอาศัยการแสดงตนของบาง idamageable

dependancy ผกผันช่วยเสริมสร้างเดียวรับผิดชอบบ้าง playerinput ไม่ควรแคร์ว่าผู้เล่นย้าย ไม่ควรสนใจสิ่งที่กำลังจะย้ายไปเล่น แค่ มีบางอย่างซึ่งสัญญา

ที่การทํางานอีกสิ่งที่ต้องเก็บไว้ในใจคือการที่ sendmessage สามารถบรรลุเป้าหมายเดียวกันในบางกรณี
การแปล กรุณารอสักครู่..
 
ภาษาอื่น ๆ
การสนับสนุนเครื่องมือแปลภาษา: กรีก, กันนาดา, กาลิเชียน, คลิงออน, คอร์สิกา, คาซัค, คาตาลัน, คินยารวันดา, คีร์กิซ, คุชราต, จอร์เจีย, จีน, จีนดั้งเดิม, ชวา, ชิเชวา, ซามัว, ซีบัวโน, ซุนดา, ซูลู, ญี่ปุ่น, ดัตช์, ตรวจหาภาษา, ตุรกี, ทมิฬ, ทาจิก, ทาทาร์, นอร์เวย์, บอสเนีย, บัลแกเรีย, บาสก์, ปัญจาป, ฝรั่งเศส, พาชตู, ฟริเชียน, ฟินแลนด์, ฟิลิปปินส์, ภาษาอินโดนีเซี, มองโกเลีย, มัลทีส, มาซีโดเนีย, มาราฐี, มาลากาซี, มาลายาลัม, มาเลย์, ม้ง, ยิดดิช, ยูเครน, รัสเซีย, ละติน, ลักเซมเบิร์ก, ลัตเวีย, ลาว, ลิทัวเนีย, สวาฮิลี, สวีเดน, สิงหล, สินธี, สเปน, สโลวัก, สโลวีเนีย, อังกฤษ, อัมฮาริก, อาร์เซอร์ไบจัน, อาร์เมเนีย, อาหรับ, อิกโบ, อิตาลี, อุยกูร์, อุสเบกิสถาน, อูรดู, ฮังการี, ฮัวซา, ฮาวาย, ฮินดี, ฮีบรู, เกลิกสกอต, เกาหลี, เขมร, เคิร์ด, เช็ก, เซอร์เบียน, เซโซโท, เดนมาร์ก, เตลูกู, เติร์กเมน, เนปาล, เบงกอล, เบลารุส, เปอร์เซีย, เมารี, เมียนมา (พม่า), เยอรมัน, เวลส์, เวียดนาม, เอสเปอแรนโต, เอสโทเนีย, เฮติครีโอล, แอฟริกา, แอลเบเนีย, โคซา, โครเอเชีย, โชนา, โซมาลี, โปรตุเกส, โปแลนด์, โยรูบา, โรมาเนีย, โอเดีย (โอริยา), ไทย, ไอซ์แลนด์, ไอร์แลนด์, การแปลภาษา.

Copyright ©2025 I Love Translation. All reserved.

E-mail: