Substitute Algorithm

You want to replace an algorithm with one that is clearer.

Replace the body of the method with the new algorithm.

	String foundPerson(String[] people){
		for (int i = 0; i < people.length; i++) {
			if (people[i].equals ("Don")){
				return "Don";
			}
			if (people[i].equals ("John")){
				return "John";
			}
			if (people[i].equals ("Kent")){
				return "Kent";
			}
		}
		return "";
	}

	String foundPerson(String[] people){
		List candidates = Arrays.asList(new String[] {"Don", "John", "Kent"});
		for (int i=0; i<people.length; i++)
			if (candidates.contains(people[i]))
				return people[i];
		return "";
	}

For more information see page 139 of Refactoring

| Refactoring Home | | Alphabetical List |