กระบวนทัศน์เหมาะสำหรับการเขียนโปรแกรม UI


9

นี่เป็นคำถามที่เจาะจงมากขึ้น (หรือจริง ๆ แล้วสองข้อ แต่เกี่ยวข้องกัน) มาจากความคิดเห็นของเทคโนโลยี OOPที่บางคนกล่าวว่า OOP ไม่ใช่กระบวนทัศน์ที่เหมาะสมสำหรับการเขียนโปรแกรม GUI

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

ฉันลบตัวอย่าง tk ออกจากชื่อและคำถาม


@Inca - โปรดจำไว้ว่า SK-logic (ผู้สร้างความคิดเห็นนี้) ต่อสู้ OOP ในทุกโอกาสที่เป็นไปได้ - ราวกับว่าเขามีภารกิจที่คลั่งไคล้ ฉันสงสัยอย่างมากว่าเขาสามารถพิสูจน์ได้ว่า tk ไม่เกี่ยวข้องกับ OOP เลย
Andreas Dolk

-1: สำหรับการอ้างอิงความคิดเห็นส่วนตัวราวกับว่ามันเป็นเรื่องจริง "OOP ไม่ใช่กระบวนทัศน์ที่เหมาะสมสำหรับการเขียนโปรแกรม GUI" จะบินต่อหน้า C # และ Objective C ซึ่งดูเหมือนจะขึ้นอยู่กับ OOP สำหรับการเขียนโปรแกรม GUI เป็นอย่างมาก หากไม่ใช่กระบวนทัศน์ที่เหมาะสมส่วนแบ่งการตลาดใหญ่ทั้งหมดของ Apple นั้นไม่มีอยู่จริงหรือบางอย่าง
S.Lott

1
@ S.Lott ไม่ใช่กระบวนทัศน์ที่ถูกต้อง แต่ GUI ควรเปิดเผย ดูเหมือนว่าคุณจะสับสนกับความนิยมในสิ่งที่ถูกต้อง
Raynos

@Raynos: "declarative" ในขณะที่วัตถุที่เกี่ยวข้องบางอย่าง? ฉันไม่เข้าใจว่าการเปิดเผยไม่ใช่ความสัมพันธ์ระหว่างวัตถุหลายอย่าง และ. ดูเหมือนจะไม่ใช่หัวข้อสำหรับคำถามนี้ คำถามดูเหมือนจะเกี่ยวกับ OO ไม่ใช่วิธีที่ดีกว่าในการเขียน GUI ชื่อดูเหมือนจะทำให้เข้าใจผิดเมื่อเทียบกับคำถามจริง ไม่ดีมาก
S.Lott

1
@Inca: พิจารณาโดยไม่คำนึงว่ามันเป็นเพียงแค่อติพจน์
S.Lott

คำตอบ:


9

ปกติฉันไม่ได้เป็นผู้สนับสนุนของ OOP แต่ฉันจะบอกว่าการเขียนโปรแกรม GUI นำเสนอโอกาสที่ดีที่สุดในการใช้จุดแข็งของ OOP การใช้วิดเจ็ตต่างๆทำให้ง่ายขึ้นมากโดยใช้ความหลากหลายและการสืบทอดของ OOP ไลบรารี GUI ของ PLT Racketเป็นตัวอย่างที่ดี


2
ฟังก์ชั่นการเขียนโปรแกรมปฏิกิริยายังดูเหมือนว่าจะดีขึ้น
SK-logic

@ SK-logic: คุณสามารถสร้างกรณีที่ดีมากสำหรับสิ่งนั้นและงานที่น่าสนใจบางอย่างใน Common LISP (คุณเคยได้ยินเรื่อง Cells?) ได้ทำไปในทิศทางนั้นแล้ว ฉันจะแก้ไขคำตอบเพื่อให้แม่นยำยิ่งขึ้น
Larry Coleman

5

GUI ทั่วไปที่ทำจากวิดเจ็ตและเลย์เอาต์ของพวกเขานั้นเป็นสิ่งที่เปิดเผยทั้งหมด วิดเจ็ตต่อ se จะไม่โต้ตอบกันดังนั้นความคิดของวัตถุและข้อความจึงค่อนข้างแปลกที่นี่ Hierarchial declarative DSLs เป็นกระแสหลักในปัจจุบันโดย Tk เป็นหนึ่งในตัวอย่างแรก ๆ และ WPF เป็นวิธีการที่ทันสมัยกว่าในสิ่งเดียวกัน ฟังก์ชั่นการเขียนโปรแกรมปฏิกิริยาเป็นอีกแนวทางที่น่าสนใจ (แต่ไม่แพร่หลายมาก)

บางคนมักจะเห็น OOP ทุกที่ที่มีการกำหนดลำดับชั้นซึ่งผิด - ไม่มีการเชื่อมต่อระหว่างลำดับชั้นที่เข้มงวด (อ่าน - ประเภทข้อมูลพีชคณิต) และคำจำกัดความของ OOP ของ Kay


3
จากประสบการณ์ของฉันวิดเจ็ตจำเป็นต้องโต้ตอบกันเพื่อสร้าง GUI ที่ดีขึ้นและระบบการประกาศที่ฉันพบมากขึ้น (บางรายการที่ใช้ xml รวมถึง HTML + css) ขาดความเป็นไปได้ในส่วนของการโต้ตอบ นอกจากนี้ประสบการณ์ของฉันกับการรวม UI โดยใช้การประกาศ (อารัมภบท) และการใช้งาน (Haskell) ไม่ได้ให้ความประทับใจจริง ๆ ว่ามันเป็นเรื่องง่าย คุณมีแหล่งข้อมูลที่ฉันสามารถดูได้ที่พูดคุยเกี่ยวกับเรื่องนี้มากขึ้นโดยเฉพาะหรือไม่? ฉันเพิ่งได้มากับตัวอย่างที่เป็นนามธรรม (หรือพื้นฐานมาก) ที่ไม่ได้อธิบายมากว่าทำไมวิธีการบางอย่างทำงานได้ดีขึ้น
Inca
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.