- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
public class SomeEntityBean implements javax.ejb.EntityBean {
private boolean loadMember;
private Wrapper list;
/* ... */
public void ejbLoad() {
this.loadMember = false;
load();
}
private void load() {
/* a LOT of code */
String[] attrList = this.loadMember ? a.attrListMember() : a.attrList();
this.list = new Wrapper(attrList);
/* a LOT of code */
}
public Something getSomething() {
/* a LOT of code */
this.loadMember = true;
load();
/* do something with this.list */
this.loadMember = false;
return something;
}
}
Имена персонажей были умышленно изменены.
Разумеется, loadMember больше нигде не используется.
Яркий пример повторного использования кода.
С тем же успехом заменяется на: String[] attrList = a.attrListMember();
Ибо перед вызовом метода load() из метода getSomething() loadMember всегда тру.
Да и loadMember для меня в данном коде имеет странное назначение.
Да и я не понял, зачем использовать ссылку на вызывающий объект - this. Этот момент прошу пояснить.
ГК, короче.
возможно a.attrListMember() - долгая операция, или ненужная, если вызов происходит не из getSomething(). Заметим, что метод load вызывается также и из ejbLoad(). Т. о. может это такой хитрый lazy loading?
Настораживает this.list = new Wrapper(attrList);
Ощущение такое, что программист очень надеется на то, что GC за ним мусор уберет.
Посмотрел что же такое Wrapper - интерфейс. Значит имело место имплементирование
class Wrapper implements java.sql.wrapper
Теперь мы можем получить объект класса.
Можно было бы придумать метод очистки содержимого объекта, а не выделять каждый раз память под новый объект. Если кто минусанет - пишите почему. Мне на карму похуй, хоть в минуса вгоните, мне важно что в коде творится на самом деле.
Это простое нормальное отношение к памяти. Да и где вообще логика - постоянно создавать новый объект используя конструктор с параметром. Такое ощущение, что настроить объект иначе - нельзя.
как будто сложно, чесслово...
хочу сырцы ЭТОГО: http://esman.su/CopyOnliOnse.png
ладно, хер с ним.
но номерок гетный, опять поне ускакал.
П. С. За ГК не считаю. Я бы ввел термин "Жертва Рефакторинга".