2010-06-18 14 views

cevap

8

Herhangi bir desen kalıbı deposu size "Bu özellik yararlı olduğunda ..." gibi ipuçları verir, ancak genellikle "kredi kartı numaraları" nı aramanıza ve "flyweight nesnesini" döndürmenize izin veren herhangi bir dizin bulunmaz . Mevcut en yakın şey genellikle uygulanacağı tasarım deseni merak ile davranışsal, inşaat vb Bence

bir sorun yaklaşan anlamı yok gibi desen gevşek gruptur. Bir kalıba yeterince aşina iseniz, hemen geçerli olduğunu ve nasıl olduğunu göreceksiniz. Eğer bir uygunluk görmüyorsanız, o zaman bir desene sadece bir desen basmaya çalışarak "Ben XX desenini kullandım, bu yüzden tasarımın iyi olması gerekiyor!" tehlikeli bir hatadır.

bile tasarım desenleri söylemek insanlar ilk etapta bir kludge, dil yeterince anlamlı olmayan bir göstergesidir vardır. (Bu, kulağa çılgınca gelmez; WHILE döngüler veya karma masalar gibi şeylerin bir zamanlar programlama dillerinden yoksun olduğunu düşünün ve o dönemin usta programcıları onları yeniden ve tekrar yeniden canlandırmak zorunda kalacaklar, şimdi onlar sözdiziminin bir parçası, ve kimse onları 'kalıp' olarak adlandırmayı hayal edemezdi. Ben, ben bu aşırılıkçı değilim; İyi seçilmiş bir tasarım modelinin, onu kullandığınızda gerçekten çok faydalı olabileceğini düşünüyorum çünkü bunun iyi bir çözüm olduğuna ikna oldunuz, ancak bunu tam olarak anlamanızı gerektiriyor ve deneyimlerimde bu hemen hemen her zaman kendiniz uygulamanızı gerektiriyor. . Kalıpların değeri, sıklıkla yapılan bir şeye tanınabilir bir isim vermede yatar, böylece daha iyi hatırlayabilir ve akranlarınızla iletişim kurabilirsiniz.

+2

+1 hoş bir dokunuş. Tasarım kalıplarını, uygun yerlerde derinlemesine anlamak ve kullanmak için ihtiyaç duyduğunuz bir şey olarak nasıl ele aldığınızı; ve onları bilmek faydalıdır, böylece niyetlerinizi arkadaşlarınızla iletebilirsiniz.Bunun yerine 'kodunuzu tasarım örüntülerinin bir araya gelmesi' yaklaşımına dönüştürürsünüz. Daha fazla insanın eski yaklaşımı benimsemesini isterdim çünkü merdivenden yararlananlar tüm tasarım kalıpları kavramını kötü bir isim veriyorlar. –

1

Tasarımlar Grafikleri problem çözme görevleri, geniş bir çeşitlilik kapsaması amaçlanır. Yani soyutta, yapılan çeşitli işleri temsil etmenin bir yolunun olması ve bu desene karşı bir tasarım desenini eşleştirmenin bir yolu olması gerekir. Genel olarak bunu yapmak "AI-hard".

spesifik bir gösterimi "çalışma yapılan"

açıkça bilgisayar kaynak kodudur. Şimdi tasarım deseni eşleştirme problemi, ilgilenilen problemi sergileyen ve istenen patente ulaşmak için kaynak kodunu değiştiren bir dizi adım olarak "örüntüyü" (ör., Çözelti) uygulayan bir dizi kod parçasına karşı eşleştirmedir. Böyle kalıplarını ifade ve otomatik kaynak kod değişiklikleri etkileyebilir

bir araç bir Program Transformation motorudur. Genellikle bir motorla yaptığınız şey, geniş bir tasarım deseni kümesini bir araya getirmek, bunları kaynak-kaynak yeniden yazma kuralları olarak tanımlamak ve daha sonra bir kod parçasını dönüşüm motoruna aktarmaktır. -match/değiştirme adımı. Tabii ki en zorlu çalışma, tasarım kalıplarının dönüşüm kuralları olarak kodlanmasıdır, çünkü çoğu tasarım deseni düzyazılarla yazılmıştır ve kesin ayrıntılar hakkında biraz bulanık olma eğilimindedir. (Program dönüştürme motoru çok zor bir işlemdir, ancak tartışmasız bir şekilde yapılmıştır.)

Program dönüşüm motorları, refactorings (iyi bilinen bir tasarım desenleri sınıfı), dil çevirisi (büyük "tasarım deseni) uygulamak için kullanılmıştır. uygulama ") ve yeni gereksinimleri karşılamak için API'ları yeniden şekillendirme gibi kod yapılandırmaları (yaptığım belirli bir örnek, C++ kod API'lerinin CORBA uyumluluğuna dönüştürülmesini otomatikleştirmektir).

İlgili konular