Ben Map.Entry uygulamak değer olarak kullandığım sınıfı sahip olmayı düşünüyordum. Bu mantıklı bir yaklaşım gibi görünüyor mu yoksa tehlikeli görünüyor mu?
Tehlikeli olsun ya da olmasın, tek sorumluluk prensibini ihlal ettiği için kötü bir tasarımdır. Bir sınıf kendi eşyalarını yapmaktan ve aynı zamanda bir Map.Entry olmasından sorumlu olmamalıdır. Şimdi başka bir kitaplıkta kullanmak istediğinizde ne olur? Başka bir arayüz uygulamak zorunda mısın?
Map.Entry
( AbstractMap
'ı genişletmeye mi çalışıyorsunuz?) Uygulayarak kazanmayı umduğunuz şey açık değilken, size bu kokunun kötü olduğunu söyleyebilirim. uygulamada hiç görmedim.
Burada asıl sorun nedir? HashMap
kullanmanın nesi yanlış?
Map map = new HashMap();
MyClass myObj = new MyClass("myId");
//...
map.put(myObj.getIdentifier(), myObj);
MyClass retrievedObj = map.get("myId");