İki istemci tipim var, " Gözlemci " tipi ve " Konu " tipi. İkisi de grup hiyerarşisiyle ilişkilidir .
Gözlemci , farklı hiyerarşiler boyunca ilişkili olduğu gruplardan veri (takvim) alır . Bu veriler, veri toplamaya çalışan grubun 'üst' gruplarından gelen veriler birleştirilerek hesaplanır (her grubun yalnızca bir üst öğesi olabilir ).
Konu, ilişkili oldukları gruplarda verileri (Gözlemcilerin alacağı) oluşturabilir. Bir grupta veri oluşturulduğunda, grubun tüm 'alt öğeleri' de verilere sahip olacak ve verilerin belirli bir alanının kendi sürümlerini oluşturabilecek , ancak yine de oluşturulan orijinal verilere bağlanabilecek ( benim özel uygulama, orijinal veriler zaman periyotları ve başlık içerirken, alt gruplar doğrudan ilgili gruplarına bağlı alıcılar için geri kalan verileri belirtir).
Ancak, Konu veri oluşturduğunda, etkilenen tüm Gözlemcilerin bununla çelişen herhangi bir veri olup olmadığını kontrol etmesi gerekir , bu da anlayabildiğim kadarıyla büyük bir özyinelemeli işlev anlamına gelir.
Bu yüzden, bu, yukarı ve aşağı gidebileceğiniz bir hiyerarşiye sahip olmam gerektiğini ve bazı yerlerde onları bir bütün olarak ele alabileceğim gerçeğiyle özetlenebilir (özyineleme, temelde).
Ayrıca, sadece işe yarayan bir çözüm hedeflemiyorum. Anlamak nispeten kolay bir çözüm bulmayı umuyorum (en azından mimari olarak) ve ayrıca gelecekte ek işlevsellik alabilecek kadar esnek.
Bu problemi veya benzer hiyerarşi problemlerini çözmek için bir tasarım deseni veya iyi bir uygulama var mı?
DÜZENLE :
İşte sahip olduğum tasarım:
"Phoenix" sınıfı bu şekilde adlandırıldı çünkü henüz uygun bir isim düşünmedim.
Ancak bunun yanında , gruplar aracılığıyla kendilerine bağlı olmalarına rağmen, belirli gözlemciler için belirli etkinlikleri gizleyebilmem gerekiyor .
Biraz konu dışı :
Şahsen, bu problemi daha küçük problemlere parçalayabilmem gerektiğini hissediyorum, ama bu bana nasıl kaçıyor. Bence, birbirleriyle ilişkili olmayan çoklu özyinelemeli işlevsellikler ve farklı şekillerde bilgi alması gereken farklı istemci türleri içerdiğini düşünüyorum. Kafamı gerçekten saramıyorum. Birisi bana hiyerarşi problemlerini kapsülleme konusunda nasıl daha iyi olabileceğim konusunda rehberlik edebilirse, bunu da almaktan çok memnun olurum.
O(n)
iyi tanımlanmış bir veri yapısı için verimli algoritmalar arıyorsanız , bunun üzerinde çalışabilirim. Group
Hiyerarşilerin yapısını ve yapısını herhangi bir mutasyona uğratma yöntemi kullanmadığınızı görüyorum . Bunların durağan olacağını varsaymalı mıyım?
n
başka bir tepe noktasının en az 1 derece olduğu benzersiz bir tepe noktası olduğu doğru mu? Her tepe noktası bağlı mın
? Yoln
benzersiz mi? Veri yapısının özelliklerini listeleyebilir ve işlemlerini bir arayüze soyutlayabilirseniz - bir yöntem listesi - biz (I) söz konusu veri yapısının bir uygulamasını yapabiliriz.