Mantıksal olarak, bir indirim modeli herhangi bir şey olabilir , bu nedenle tüm vakaları önceden programlayabileceğinizi varsayamazsınız. Sorunuzu cevaplayan herhangi biri gerçekte neye ihtiyacınız olduğunu tam olarak bilemez. Ancak, gerçek dünyada bulunan her zamanki indirim türlerini aldığınızı varsayarsak ...
Büyük bir soru, indirimlerin programlanıp programlanmayacağı veya kullanıcıların girmesini isteyip istemediğinizdir. Yukarıda bahsedildiği gibi, hiçbir zaman programlanmalarını sağlayamazsınız , ancak genellikle amaç, hepsini sıralamaktan ziyade, ortak durumlar için daha fazla veri girişi yapmaya çalışmaktır. Bu, tüm indirimleri oluşturmak için programcılar kullanılsa bile bir dereceye kadar geçerlidir.
Martin Fowler, muhasebe sistemleri için "Gönderme Kuralları" nın nasıl uygulanacağının bir parçası olarak "Analiz kalıpları: yeniden kullanılabilir nesne modelleri" bölümünde "Bireysel Örnekleme Yöntemi" nden bahseder, ancak kurallar sizinkilere oldukça benzer görünüyor. Daha fazla detay verirdim ama bu telif hakkı alınmış bir iş ve
Bir kullanıcı arayüzü için, oldukça basit olan kullanım durumları bulmanız veya başka bir tercüman ve sorgu oluşturucu oluşturmanız gerekir. Muhtemelen her ikisi de, basit durumlar için bir tane ve bir tane daha gelişmiş. Bir tercüman yazarsanız, bu, Tercüman modelini kullanmak için oldukça iyi bir durumdur, çünkü ayrıştırıcı oluşturucuya göre kodlamak nispeten kolaydır ve daha yavaş ayrıştırma süresi muhtemelen gerçekten önemli olmaz. (Ayrıştırma jeneratörleri kullanmaktan hoşlanıyorsanız, sizi durdurmama izin vermeyin).
Her şeyi tercümanla yapmaya çalışmayın - bir noktada sadece kendi dilinizde programlama yapabilirsiniz, yani gerçek bir dil de kullanabilirsiniz. Tercüme edilmiş diliniz işlevleri destekliyorsa (muhtemelen onları çağırmayı desteklemeli - onları tanımlamak şüphelidir) bunlar gerçek bir dilde kodlanabilir. Bu yoldan gitmen gerekenden daha ileri gitme.
Ne yaparsanız yapın, sonunda birisi indirimin promosyondan sonraki 30 iş günü içerisinde satın alınıp alınmayacağına dayanmasını ister - iş günleri yalnızca mağazanın posta kodu veya müşterinin belirlediği bölgede tatil yapılmaması durumunda sayılır. posta kodu. Öyleyse, mükemmel sistemi önceden tasarlamaya çalışmayın - bazen yeni indirimler ve buna göre tasarım için kod yazmanız gerekeceğini varsayalım.