Home > OO Programming, OOAD Basic > Tell don’t Ask

Tell don’t Ask

Object-oriented code lebih mudah dimengerti dan dimantain jka ditulis dengan menggunakan style “Tell, Don’t Ask”. Maksudnya ?? Object haruslah membuat keputusan hanya dengan menggunakan informasi yg dimiliki bukan berdasarkan informasi yg dimiliki oleh object lain. Tell itu command. Ask itu query.

Contohnya.

public class MyObject
{
     private OtherObject m_otherObj;
     .....
     public void MoveSomething()
     {
           boolean state = m_otherObj.IsOK; // ask / query
           if (state)
              m_otherObject.DoBadAction(); // command / tell
           else
              m_otherObject.DoGoodAction();
     }
}

akan lebih baik jika kita mengubahnya seperti ini :

public class MyObject
{
     private OtherObject m_otherObj;
     .....
     public void MoveSomething()
     {
          m_otherObject.DoYourActionWithYourOwnChoice(); // command / tell
     }
}

yups….

jadi dengan demikian kita dapat mengantikan suatu object dengan object lain yang dapat merespon perintah yg sama dengan cara yg berbeda. Karena kita tidak terikat dengan internal object kepada siapa kita berkomunikasi.

Lawan dari Tell don’t ask style adala train-wreck. Sambung menyambung menjadi satu. Hahaha. contohnya.

Attribute a =   object.getPart().getSubpart().getAttribute();
// atau 
object.getPart().getSubpart().setAttribute(x);

so tell don’t ask. demi kelangsungan hidup software saudara.

  1. thegands
    February 6, 2009 at 9:12 am

    kek gini banyak juga dipakai wel…
    misalnya…
    date.getDate().toString().trim().equals(“blablabla”);
    hahahahaha………..

  2. weltam
    February 6, 2009 at 9:19 am

    hahahaha … macam kereta api kan pas …
    tut tut

  3. thegands
    February 6, 2009 at 10:28 am

    hahaha…oke wel, mantap lah… aku udah hidup dan mendunia di dunia Rich Internet Application. Tapi untuk yang OOP beginian juga oke juga koq. Tapi sebelum berlangsung terlalu jauh, gimana kita berdua membuat sebuah website yang khusus membahas seperti ini bro? terus untuk langkah awal, kita berdua dulu penulisnya, terus kita invite siapa2 aja yang mau bergabung. Gimana? Ntar kita bikin halaman donasi, bagi siapa saja mau memberi donasi, biar website kita eksis, yah, soalnya kita kan bayar hosting juga toh? terus ntar, kita buat buku yuukk.. lumayan menambah keuangan kita. Ingat suatu hal yang penting dan penting kali bro, programmer juga butuh makan. hahahahahaha… programmer juga punya pacar, programmer juga butuh ke mall.. hahahahaha… bener gak bro? gimana dengan usulku?

  4. Faber
    February 13, 2009 at 6:32 am

    Mak…Udh ngeri kali kau wel.
    Ntah udh apa2 aja lah yg kau baca selama ini ya.

    Aku aja blm bisa apa2 dgn OO. Bikin class atw method yg bener aja aq blm bisa, sementara kw udh maen2 dgn pattern en high-level concept lainnya.

    After all, good job. Keep it up.

  5. antiq
    January 27, 2012 at 4:12 am

    hayo di jawab pertanyaan ganda wel…
    kok kau gantung dia…hahaha

  1. No trackbacks yet.

Leave a reply to Faber Cancel reply