Ben çok yüzü vardır ve şimdiye kadar temalar yaratarak bu uygulanan ettik bir web uygulaması var. Bir tema html, css ve ortak arka ucu ile kullanılacak görüntülerin bir dizi.
Yapılacak şöyle ortaya koydu:
code/
themes/theme1
themes/theme2
Ve web uygulamasının her örneği kullanılması gerektiğini hangi tema bildiren bir yapılandırma dosyası vardır. Örnek:
theme="theme1"
Şimdi yeni iş kuralları sadece html / css / görüntüleri değiştirmek ve arka uç değiştirme gerektiren yoluyla elde edilemeyen bazı temalar değişiklik yapmak için bana soruyorsun. Bazı durumlarda bu değişiklikler temaları bir gruba uygulanması gerekir.
Ben iyi kodunda nasıl hallederim ayrıca diske bu ortaya koymak, ve nasıl merak ediyorum. Ben başkası buna karşı gelmek olmalı eminim.
Bir fikir sahip olmaktır:
code/common
code/theme1
code/theme2
themes/theme1
themes/theme2
Sonra benim ortak kod code/theme1
code/common
sonra, ilk aranır olduğunu include_path
böyle belirledik.
Ben uzmanlaşmak istiyorsanız, o zaman için LogoutPage
class theme2
, ben sadece [(3)] {altında aynı yolu code/common
adlı sayfayı kopyalayabilirsiniz söylüyor } ve özel sürümünü almak olacaktır.
Bu fikir ile bir sorun, aynı ada sahip birden çok sınıfları orada olacak olmasıdır. Teoride aynı yürütme dahil asla rağmen, ben orijinal temel sınıf uzatmak mümkün olmaz.
Peki ben taban sınıfı için benzersiz bir isim yapmak için olsaydı? örneğin Theme1LogoutPage extends LogoutPage
. Bununla öngörebiliriz bir sorun bazı ortak kod referansları (Dispatcher söylüyorlar) durumdur LogoutPage
. Ben memuru için koşullar ekleyebilirsiniz, ancak bu işlemek için daha şeffaf bir yolu var acaba?
Aklıma başka bir seçenek, her tema için ayrı şube korumak için, ama bu işin bir sürü olabileceğini düşünüyorum.
Düşünün son bir şey özellikleri bir tema köken ve ardından ortak kod temeli kaynaştırılmaları gerektirebilir olmasıdır.
Herhangi bir giriş büyük takdir. Herhangi bir fark yaparsa, o bir lamba ortam.