Biz bir php envanter programı verildi. Biz o zaman sadece program daha karmaşık hale getirecek eğer bir tasarım deseni programı daha iyi yapmak veya eğer söylemek gerekiyor.
Program bu gibi yapılandırılmıştır.
Program html gömülü php komut içine bozuldu. Bir seçenek, ya da (B) bir seçeneğin mantık benzer bir eylemin diğer seçenekleri için hizmet veren bir başka betik sayfa içinde olduğunu adanmış (A) bir bütün php sayfası var ya. (Bu, "Reset" gibi basit düğmeler dışlar "Eve geri dön.")
Eğer web sitesi açmak kez (A) Örneğin, bir navigasyon menüsü seçenekleri ile görüntülenir. Bir seçeneği tıkladığınızda, Müşteri altında, bir "Görüntüle" bağlantısını olduğunu söylüyor. Bir kez tıklandığında, örneğin "Düzenle" ve "Sil" olarak daha fazla seçenek için gelen diğer bağlantılar içerir, başka bir sayfaya alınır. Genellikle, bu web sitesi için, her seçenek kendi php script sayfasına gelir. Örneğin, "View" list_customers.php karşılık gelir. "Edit" edit_customer.php karşılık gelir.
(B) olabilirdi başka bir şey bu seçenek için mantığı bir "genel" komut sayfasında olmasıdır. Ne demek istedi birkaç seçenekleri 'mantığı bir sayfa içine gruplandırılmış olmasıdır. Bu bir örnektir "Sil." Olan bir müşteri, iş emri, ya da bir tırnak, bir tek yönetici silebilir emin olmak için auth.php adlı bir php script sayfasına yönlendirilir silebilirsiniz önce. O yılında yönetici günlüğü olmadığını kontrol etmek için ve bir müşteri, iş emri, ya da bir tırnak silinmesi için mantık auth.php de geçerlidir. Başka bir örnek Müşteri için tüm "ara" seçeneği. Kendi sayfa, search_customer.php, aslında arama için mantığa sahip olmasına rağmen list_customers.php aslında. Bu örüntü, tüm alıntılar için müşteriler için arama dahil olmak üzere aramaların, ya da teslimat raporlarında şöyle; arama kodu ilgili list_ *. php sayfa aslında.
Ben zor bir zaman daha karmaşık hale olmayacak bir tasarım deseni bulma bulma yaşıyorum. Ben bulmak olanların çoğu OO paradigmaları için tasarlanmış, ve bu envanter kesinlikle değil vardır. (Kullanıcı adı ve şifrenizi) log gibi (kullanıcı adı, şifre, kimlik yok.) Bir şey değiştirirse ben buldum sadece yararlı yoldur beri Factory Pattern kesinlikle yardımcı olmaz. Ancak, ben sadece 2 php sayfaları işlevselliği giriş beri bu yararlı olmayacaktır düşündüm.
Ben de tüm arama mantığı tek bir nesne haline yapılabilir görmek için baktı. Ama (onlar fark. Tabloları sorgulama beri) sonra, arama her türü, kendi yöntemi var olacak, ve bu alışkanlık mevcut kurulum çok farklı olabilir (her bir arama ilgili liste php sayfasında şu anda.)
I might yararlı olduğu bulundu tek şey düzenli ifadeler için bir tasarım çabuk olduğunu. Programda formlar valide değildir. Burada herhangi bir fikir var mı?
Ayrıca, sınıfın konu Yazılım Kalite değildir. Benim kişisel görüşüm böyle büyük bir proje olmadığı bir tasarım çabuk, bu web sitesi daha karmaşık hale getirecek olmasıdır. Ama benim sınıf arkadaşlarım bu OO değil çünkü, o kadar sürdürülebilir olmadığını savunuyorlar. Ama ben düşünüyordum, PHP değil OO olarak yapıldı, ben düzeltmek am? Yani bir OO tasarım deseni olacak sadece karışıklık şeyleri uyması için onu zorluyor.
Sen ne düşünüyorsun? Herhangi bir tasarımı bu duruma geçerli olabilir desenler?