Story-1: รู้ OOA/D, OOP และภาษาอังกฤษจากเรื่องราวในโลกจริง… ได้ในครั้งเดียว…

วิถีนี้ผมคิดค้นขึ้นมาเองครับ เอาไว้ฝึกคิดวิเคราะห์ และออกแบบ ผมว่ามัน work และสนุกดีเลยทีเดียว

Story-1 จาก: http://www.bangkokpost.com/learning/learning-together/239281/easy-and-fun

ผมแสดงเรื่องราวจากข่าวเป็น C#.NET Code ได้เป็น:

        [TestMethod]
        public void TheStoryOfHisMajestyTheKingWasRecoveringWellFromHisIllness()
        {
            /*
            * Story:
            * His Majesty the King pays respect to the statue of King Rama V at Siriraj Hospital after visiting the hospital pier to observe the Chao Phraya River water level yesterday.
            */
            var hisMajestyTheKing = new Human();
            var statueOfKingRamaV = new Statue();
            var sirirajHospital = new Hospital();
            var theChaoPhrayaRiver = new River();

            //His Majesty the King was recovering well from his illness
            hisMajestyTheKing
                .PayRespectTo(statueOfKingRamaV)
                .At(sirirajHospital)
                .After()
                .Visiting(sirirajHospital.Pier)
                .Observe(theChaoPhrayaRiver, "WaterLevel")
                .Yesterday();//Fluency
        }
    public abstract class Actor { }
    public class Human : Actor
    {
        ///<summary>
        /// pay respect to – to show deep admiration for someone แสดงความเคารพ
        ///</summary>
        ///<param name="human"></param>
        ///<returns></returns>
        public Human PayRespectTo(Actor actor) { return this; }
        public Human Observe(Actor actor, params object[] observeOptions) { return this; }
        public Human At(Actor actor) { return this; }
        public Human After() { return this; }
        public Human Visiting(Actor actor) { return this; }
        public Human Yesterday() { return this; }
    }
    ///<summary>
    /// statue – human or animal images that are made of stone, wood, metal, etc. รูปปั้น
    ///</summary>
    public class Statue : Actor { }
    public class River : Actor
    {
        public double WaterLevel { get; set; }
    }
    public class Hospital : Actor
    {
        public Pier Pier { get; set; }
    }
    ///<summary>
    /// pier - a platform sticking out into water which people walk along or use when getting onto or off boats
    ///ท่าเรือชนิดยื่นออกไปในน้ำ, สะพานที่ยื่นออกไปในน้ำ
    ///</summary>
    public class Pier : Actor { }

แผนภาพ UML Class ของ Story 1:

สนุกดีครับลองดู …

ขอบคุณครับ 🙂

  • OOA/D: Object-Oriented Analysis and Design
  • OOP: Object-Oriented  Programming

เขียนน้อยที่สุด ให้ผลมากที่สุด

ดัดแปลงจาก: ประหยัดสูงสุด ประโยชน์สูงสุด โดย ท่าน ว.วชิรเมธี

Advertisements

#agile-software-development, #design, #pattenrs