Secara logis, model diskon dapat berupa apa saja , jadi Anda tidak dapat mengasumsikan Anda dapat memprogram semua kasing terlebih dahulu. Tidak seorang pun yang menjawab pertanyaan Anda akan sepenuhnya yakin apa yang sebenarnya Anda butuhkan. Namun, dengan asumsi Anda mendapatkan jenis diskon yang biasa ditemukan di dunia nyata ...
Pertanyaan besar adalah apakah diskon akan diprogram, atau jika Anda ingin pengguna memasukkannya. Seperti disebutkan di atas, Anda tidak bisa tidak pernah memiliki mereka diprogram, tetapi biasanya tujuannya adalah untuk mencoba untuk membuatnya entri data lebih seperti untuk kasus-kasus umum, daripada pemrograman mereka semua. Ini berlaku sampai batas tertentu bahkan jika programmer digunakan untuk membuat semua diskon.
Martin Fowler menyebutkan "Metode Instance Individu" dalam "Pola analisis: model objek yang dapat digunakan kembali" sebagai bagian dari bagaimana menerapkan "Aturan Posting" untuk sistem akuntansi, tetapi aturan tersebut tampaknya cukup mirip dengan Anda. Saya akan memberikan detail lebih banyak tetapi ini adalah karya berhak cipta dan
Untuk antarmuka pengguna, Anda harus membuat kasus penggunaan yang cukup sederhana, atau membangun penerjemah dan pembuat kueri. Mungkin keduanya, satu untuk kasus-kasus sederhana dan satu lagi tingkat lanjut. Jika Anda menulis interpreter, ini kemungkinan merupakan kasus yang cukup baik untuk menggunakan pola Interpreter, karena relatif mudah untuk dikodekan dibandingkan dengan generator parser, dan waktu parser yang lebih lambat mungkin tidak terlalu masalah. (Jika Anda suka menggunakan generator parser jangan biarkan saya menghentikan Anda).
Jangan mencoba melakukan semuanya dengan seorang juru bahasa - pada titik tertentu Anda hanya memprogram dalam bahasa Anda sendiri yang payah, jadi sebaiknya Anda menggunakan yang asli. Jika bahasa yang Anda tafsirkan mendukung fungsi (mungkin harus mendukung pemanggilan mereka - mendefinisikannya meragukan) yang dapat dikodekan dalam bahasa nyata. Jangan melangkah lebih jauh ke jalan ini daripada yang seharusnya.
Apa pun yang Anda lakukan, pada akhirnya seseorang akan menginginkan diskon didasarkan pada apakah mereka membeli dalam waktu 30 hari kerja setelah promosi - di mana hari kerja hanya dihitung jika tidak ada hari libur di wilayah yang ditentukan oleh kode pos toko atau pelanggan. Kode Pos. Jadi jangan mencoba untuk merancang sistem yang sempurna di muka - anggap Anda kadang-kadang perlu menulis kode untuk jenis diskon baru dan desain yang sesuai.