- 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 больше нигде не используется.
Яркий пример повторного использования кода.
Lure Of Chaos 16.06.2011 14:06 # 0
ling 16.06.2011 14:22 # −3
3.14159265 16.06.2011 16:11 # −1
SmackMyBitchUp 16.06.2011 14:44 # −1
С тем же успехом заменяется на: String[] attrList = a.attrListMember();
Ибо перед вызовом метода load() из метода getSomething() loadMember всегда тру.
Да и loadMember для меня в данном коде имеет странное назначение.
Да и я не понял, зачем использовать ссылку на вызывающий объект - this. Этот момент прошу пояснить.
ГК, короче.
SmackMyBitchUp 16.06.2011 17:45 # +1
gegMOPO4 17.06.2011 14:16 # 0
tir 16.06.2011 21:52 # 0
возможно a.attrListMember() - долгая операция, или ненужная, если вызов происходит не из getSomething(). Заметим, что метод load вызывается также и из ejbLoad(). Т. о. может это такой хитрый lazy loading?
SmackMyBitchUp 16.06.2011 23:23 # 0
Настораживает this.list = new Wrapper(attrList);
Ощущение такое, что программист очень надеется на то, что GC за ним мусор уберет.
Посмотрел что же такое Wrapper - интерфейс. Значит имело место имплементирование
class Wrapper implements java.sql.wrapper
Теперь мы можем получить объект класса.
Можно было бы придумать метод очистки содержимого объекта, а не выделять каждый раз память под новый объект. Если кто минусанет - пишите почему. Мне на карму похуй, хоть в минуса вгоните, мне важно что в коде творится на самом деле.
roman-kashitsyn 16.06.2011 23:55 # 0
bugmenot 17.06.2011 02:28 # 0
roman-kashitsyn 17.06.2011 06:49 # 0
SmackMyBitchUp 17.06.2011 12:40 # 0
roman-kashitsyn 17.06.2011 16:10 # −1
SmackMyBitchUp 19.06.2011 16:39 # 0
Это простое нормальное отношение к памяти. Да и где вообще логика - постоянно создавать новый объект используя конструктор с параметром. Такое ощущение, что настроить объект иначе - нельзя.
roman-kashitsyn 20.06.2011 09:01 # 0
SmackMyBitchUp 20.06.2011 18:13 # 0
bugmenot 17.06.2011 17:38 # 0
как будто сложно, чесслово...
roman-kashitsyn 17.06.2011 18:36 # 0
bugmenot 17.06.2011 18:41 # +1
хочу сырцы ЭТОГО: http://esman.su/CopyOnliOnse.png
SmackMyBitchUp 19.06.2011 16:41 # 0
3.14159265 20.06.2011 14:16 # +1
JeremyW 16.06.2011 14:54 # +1
Lure Of Chaos 16.06.2011 15:21 # 0
ладно, хер с ним.
но номерок гетный, опять поне ускакал.
JeremyW 16.06.2011 18:11 # 0
Lure Of Chaos 16.06.2011 18:42 # 0
JeremyW 16.06.2011 18:51 # −1
Lure Of Chaos 16.06.2011 21:16 # −1
guest 17.06.2011 19:38 # 0
gegMOPO4 16.06.2011 15:02 # 0
Lure Of Chaos 16.06.2011 15:22 # 0
SmackMyBitchUp 16.06.2011 17:46 # 0
gegMOPO4 17.06.2011 14:17 # 0
tir 17.06.2011 09:17 # 0
П. С. За ГК не считаю. Я бы ввел термин "Жертва Рефакторинга".
roman-kashitsyn 17.06.2011 16:12 # 0
tir 17.06.2011 21:22 # 0
SmackMyBitchUp 17.06.2011 21:23 # 0
guest8 08.04.2019 20:57 # −999
guest8 09.04.2019 18:06 # −999