คำถามติดแท็ก decorator

6
การบันทึกถัดจากการใช้งานเป็นการละเมิด SRP หรือไม่
เมื่อคิดถึงการพัฒนาซอฟต์แวร์ที่คล่องตัวและหลักการทั้งหมด (SRP, OCP, ... ) ฉันถามตัวเองว่าจะจัดการการบันทึกอย่างไร การบันทึกถัดจากการใช้งานเป็นการละเมิด SRP หรือไม่ ฉันจะบอกว่าyesเพราะการใช้งานควรจะสามารถทำงานได้โดยไม่ต้องเข้าสู่ระบบ ดังนั้นฉันจะใช้การบันทึกในวิธีที่ดีกว่าได้อย่างไร ฉันได้ตรวจสอบรูปแบบบางอย่างและได้ข้อสรุปว่าวิธีที่ดีที่สุดที่จะไม่ละเมิดหลักการในแบบที่ผู้ใช้กำหนด แต่เพื่อใช้รูปแบบใด ๆ ที่ทราบว่าละเมิดหลักการก็คือใช้รูปแบบมัณฑนากร สมมติว่าเรามีส่วนประกอบจำนวนมากโดยไม่มีการละเมิด SRP จากนั้นเราต้องการเพิ่มการบันทึก องค์ประกอบ A องค์ประกอบ B ใช้ A เราต้องการบันทึกสำหรับ A ดังนั้นเราจึงสร้างส่วนประกอบอีก D ที่ตกแต่งด้วย A ทั้งสองใช้อินเตอร์เฟส I อินเตอร์เฟส I component L (บันทึกองค์ประกอบของระบบ) องค์ประกอบ A ใช้ I component D ใช้ I, ตกแต่ง / ใช้ A, ใช้ …

3
มันหมายถึงอะไรในการฉีดข้อมูล (พฤติกรรมเทียบ) ในตัวสร้างคลาสและทำไมจึงถือว่าการปฏิบัติที่ไม่ดี?
ฉันกำลังอ่านหนังสือ "Learning TypeScript" โดย Remo Jansen ในส่วนเดียวผู้เขียนอธิบายถึงวิธีการสร้างกรอบงาน MVC ที่พิสูจน์ง่ายของแนวคิดรวมถึงวิธีการสร้างModelชั้นเรียนและกล่าวว่าต่อไปนี้: รูปแบบจะต้องมี URL ของบริการบนเว็บที่ใช้ พวกเราจะใช้ตัวตกแต่งคลาสชื่อ ModelSettings เพื่อตั้งค่า URL ของบริการที่จะใช้ เราสามารถฉีด URL บริการผ่านทางคอนสตรัค แต่ก็ถือว่ามีการปฏิบัติที่ไม่ดีที่จะฉีดข้อมูล (เมื่อเทียบกับพฤติกรรม) ผ่านการสร้างคลาส ฉันไม่เข้าใจประโยคสุดท้าย โดยเฉพาะฉันไม่เข้าใจว่า "ฉีดข้อมูล" หมายความว่าอย่างไร สำหรับผมแล้วดูเหมือนว่าในการนำเสนอคลาสจาวาเกือบทั้งหมดโดยใช้ตัวอย่างที่ง่ายกว่านั้นจะมีการแนะนำข้อมูล ("injected"?) ลงใน Constructor ผ่านพารามิเตอร์ ตัวอย่างเช่น: class Person { constructor(name) { this.name = name; } } แน่นอนฉันคิดว่าnameเป็นข้อมูลไม่ใช่เป็นพฤติกรรมและรวมอยู่ในระดับสากลในตัวอย่างประเภทนี้เป็นพารามิเตอร์ตัวสร้างและไม่เคยมีการเอ่ยถึงว่านี่เป็นการปฏิบัติที่ไม่ดี ฉันคิดว่าฉันเข้าใจผิดบางอย่างในคำพูดข้างต้นไม่ว่า "data" หรือ "inject" หมายถึงอะไร คำตอบของคุณอาจรวมถึงคำอธิบายว่าเมื่อใดที่ไหนอย่างไรและทำไมต้องใช้มัณฑนากรใน …

4
ผู้ตกแต่งชั้นเรียนใน Python: กรณีใช้งานจริง
ฉันกำลังมองหากรณีการใช้งานที่เป็นประโยชน์และไม่ใช้การสังเคราะห์ของผู้ตกแต่งคลาส Python จนถึงตอนนี้สิ่งเดียวที่ทำให้ฉันรู้สึกได้คือการลงทะเบียนชั้นเรียนในระบบผู้เผยแพร่ - สมาชิกเช่นปลั๊กอินหรือกิจกรรมเช่น: @register class MyPlugin(Plugin): pass หรือ @recieves_notifications class Console: def print(self, text): ... กรณีที่มีเหตุผลอื่น ๆ ที่ฉันคิดว่าอาจถูกสร้างขึ้นจากการสืบทอด metaclasses หรือวิธีการตกแต่ง คุณช่วยแบ่งปันตัวอย่างที่ดี (หรือไม่ดี) ของการใช้เครื่องมือตกแต่งชั้นเรียนได้ไหม? ขอบคุณ!
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.