Mangler programtervezési minta
A mangler egy programtervezési minta, ami a funkcionális nyelvekben szokásos reduce vagy map leképezést valósítja meg alapvetően nem funkcionális környezetben. Lényege, hogy egy lista minden elemére végrehajtja ugyanazt a műveletsort, és a végén még egy műveletet végrehajthat az így kapott adatokra. A bemenet tipikusan szótár adatstruktúrák (map, hash, dictionary a neve különböző nyelveken) listája, ami végrehajtja a belső műveleteket, és a belső adatokat külső szűrőnek adja.
Tipikusan keresésre használják, illetve arra, hogy a felhasználótól kapott bemenetet további feldolgozásra alkalmasabb normálformára hozzák.
Fontos különbség más mintákkal szemben, hogy helyben módosítja az adatokat. A minta ötlete Dr. John Watsontól származik, aki a TransUnion's Research and Development Lab munkatársa.
Java
[szerkesztés]// This is a trivial implementation of Mangler in Java.
public interface TokenMangler {
List<String> mangleTokens (List<String> tokens);
}
public class LowerCasingTokenMangler implements TokenMangler {
List<String> toLowerCase (List<String> tokens) {
List<String> results = new ArrayList<String>();
for (String token : tokens) {
results.add(token.toLowerCase());
}
return results;
}
}
Fordítás
[szerkesztés]Ez a szócikk részben vagy egészben a Mangler pattern című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.