Если нельзя, но очень хочется, то нужно обязательно и ничего в мире не стоит того, чтобы делать из этого проблему!


Интересна Java? Кликай по ссылке и изучай!
Если тебе полезно что-то из того, чем я делюсь в своем блоге - можешь поделиться своими деньгами со мной.
с пожеланием
столько времени читатели провели на блоге - 
сейчас онлайн - 

пятница, 11 июня 2010 г.

Рефакторинг: Интересный примерчик

Как бы вы порефакторили этот кусок кода?
boolean extendsReal = false;
boolean abstractManager = false;
if ( someObject.className == null ) {
    out.println("    extends TransportImpl<" + (isPKeyLong ? "Long" : "Integer") + ">");
} else if ( someObject.className.contains("AbstractManager") ) {
    out.println("    extends " + someObject.className + "<" + (isLong ? "Long" : "Integer") + ">");
    abstractManager = true;
    extendsReal = true;
} else {
    out.println("    extends " + someObject.className);
    extendsReal = true;
}
Уже порефакторили? Хотите глянуть как это сделал я? Читаем дальше...

String genericType = (isLong ? "<long>" : "<integer>");
boolean extendsReal = someObject.className != null;
boolean abstractManager = extendsReal && someObject.className.contains("AbstractManager");
String className = (extendsReal)? someObject.className : "TransportImpl";           
String genericTypeString = (!extendsReal ||  abstractManager) ? genericType : "";            
out.println("    extends " + className + genericTypeString);

Комментариев нет:

Отправить комментарий