- 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
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
public class ... extends Applet implements MouseListener, ActionListener {
...
@Override
public void actionPerformed(ActionEvent arg0)
{
// TODO Auto-generated method stub
boolean bNeedRepaint = false;
if(arg0.getSource() == m_ZoomIn)
{
...
}
else if(arg0.getSource() == m_ZoomOut)
{
...
}
else if(arg0.getSource() == m_ZoomBack)
{
...
}
else if(arg0.getSource() == m_MaxHeight)
{
...
}
else if(arg0.getSource() == m_MinHeight)
{
...
}
else if(arg0.getSource() == m_MaxWidth)
{
...
}
else if(arg0.getSource() == m_MinWidth)
{
...
}
else if(arg0.getSource() == m_MaxSpace)
{
...
}
else if(arg0.getSource() == m_MinSpace)
{
...
}
else if(arg0.getSource() == m_MovLeft)
{
...
}
else if(arg0.getSource() == m_MovRight)
{
...
}
else if(arg0.getSource() == m_MovUp)
{
...
}
else if(arg0.getSource() == m_MovDown)
{
...
}
else if(arg0.getSource() == m_AlignCenter)
{
...
}
else if(arg0.getSource() == m_TxtFirst)
{
...
}
}
}
Из апплета, присланного китайцами для интеграции в наше веб-приложение.
SmackMyBitchUp 06.06.2011 08:20 # 0
Lure Of Chaos 06.06.2011 08:52 # +3
lucidfox 06.06.2011 08:59 # 0
Во-первых, анонимные классы для кого придумали?
Во-вторых, если добавится ещё одна кнопка, её придётся в три места вставлять.
И в третьих, actionPerformed - это деталь реализации, которая не должна торчать наружу. Инкапсуляция-с.
Я уж молчу про венгерскую нотацию (китайцы портировали апплет с виндового приложения на MFC, так что им простительно), про arg0, и про то, что getSource() вызывается в каждом ифе.
Lure Of Chaos 06.06.2011 09:02 # 0
не получится-с. в интерфейсе ActionListener этот метод обьявлен как public (ну правильно), а сужать область видимости нельзя
lucidfox 06.06.2011 09:08 # +1
надо писать так:
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { ... }
});
SmackMyBitchUp 06.06.2011 09:26 # −1
Lure Of Chaos 06.06.2011 09:37 # +1
gegMOPO4 08.06.2011 14:31 # 0
Lure Of Chaos 06.06.2011 09:10 # 0
extends Applet implements MouseListener, ActionListener
lucidfox 06.06.2011 09:12 # +1
Lure Of Chaos 06.06.2011 09:14 # +1
Lure Of Chaos 06.06.2011 09:14 # 0
lucidfox 06.06.2011 09:15 # 0
Lure Of Chaos 06.06.2011 09:17 # 0
dwinner 06.06.2011 11:46 # 0
всех обратных вызовов. ИМХО явно не Java Style.
RaZeR 06.06.2011 17:48 # 0
После такого и я почку отдам чтобы такое не видеть...
Lure Of Chaos 06.06.2011 18:50 # +2
guest 07.06.2011 01:08 # 0
Уши же! А вы что подумали?
Lure Of Chaos 07.06.2011 15:05 # 0
gegMOPO4 08.06.2011 14:26 # 0
Делать обработчики через анонимные классы — это несколько сот лишних байт на обработчик. В сумме может существенно повлиять на размер апплета. А если апплет не в jar засовывается, а отдельным классом — то и классов станет несколько, многократно вырастет число обращений на сервер. Увеличение объёма, увеличение времени старта. Плюсовики нервно относятся к лишнему оверхеду.
Так что это — оптимизация за счёт некоторого геморроя в разработке. К устаревшей жаве отношения не имеет, анонимные классы были практически всегда.
guest8 08.04.2019 20:54 # −999
guest8 09.04.2019 10:53 # −999