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.