ความรู้มากมาย แต่เริ่มต้นเขียนโปรแกรมไม่ถูกซักที ตอนที่ 2 – การออกแบบ(2)

หลังจากที่หายไปนาน (ยุ่งๆ + ขี้เกียจ) เรามาต่อตอน 2 กันดีกว่า สำหรับซีรีส์  “ความรู้มากมาย แต่เริ่มต้นเขียนโปรแกรมไม่ถูกซักที” ของเรา

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

Continue Reading…

Abstract, Interface Programming

ก่อนหน้านี้ เราก็ได้มีการพูดถึงเรื่องของ OOP กันมาบ้างเล็กน้อย ซึ่งก็ทำให้เราได้รู้ว่า คุณลักษณะสำคัญต่างๆของ OOP ที่จำเป็นต้องมีนั้น ก็ประกอบด้วย Encapsulation, Inheritance และ Polymorphism ซึ่งแต่ละองค์ประกอบนั้น ก็ถูกแบ่งออกเป็นคุณลักษณะของแต่ละภาษาออกไปตามแต่ละไวยากรณ์ของภาษานั้นๆ แต่ก็ยังมีวิธีการทำงานที่คล้ายๆกันอยู่

บทความนี้ ซึ่งจะกล่าวถึง Abstract Class และ Interface Programming นั้น จะถือว่าถูกจัดอยู่ใน Polymorphism หรือก็คือความหลากหลายนั่นเอง ซึ่งจะอธิบายออกมาด้วยไวยากรณ์ของภาษา Java เพราะเป็นภาษาที่ทำความเข้าใจได้ง่ายกว่า C++ ในหลายๆลักษณะ และเป็นภาษาที่มีผู้เริ่มต้นในการศึกษาการโปรแกรมมิ่ง ศึกษาอยู่มากพอสมควร Continue Reading…

การเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Programming)

การเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Programming)
สำหรับคนที่เคยเรียนโปรแกรมมิ่งมาบ้างแล้ว โดยเฉพาะคนที่เคยศึกษาภาษา Cมา มักจะคุ้นเคยกับการเขียนโปรแกรมไปเรื่อยๆ แล้วแบ่งฟังชั่นการทำงานไปเรื่อยๆ เพื่อให้โปรแกรมเป็นไปตามต้องการ ซึ่งวิธีนี้ก็ไม่ได้ผิดอะไร แต่จะมีความยุ่งยากมาก เมื่อต้องเขียนโปรแกรมที่มีความซับซ้อนขึ้นไป เพราะเราไม่สามารถมองโค้ดขึ้นมาอย่างเป็นรูปธรรมได้
 
มองอย่างง่ายๆ ปกติแล้ว เวลาเราเขียนแบบเดิม(ต่อไปนี้จะเรียกว่า Structural Programming) เราจะมองถึงขั้นตอนการทำงานเป็นหลัก ให้ทำงานตามลำดับชั้น ไปเรื่อยๆให้งานเสร็จสมบูรณ์ 

Continue Reading…