object oriented analysis and design flexible software
TRANSCRIPT
QUALITY. PRODUCTIVITY. INNOVATION.
endava.com
Object Oriented Analysis and DesignGive your software a 30-
minute workout
2
Give your software a 30-minute workout
Flexible software
Benefits of analysis Design decisions Flexible applications Cohesion OOA&D Toolbox
QUALITY. PRODUCTIVITY. INNOVATION.
3
3 QUALITY. PRODUCTIVITY. INNOVATION.
4
4
We should use only one search method, using InstrumentSpec
5
5
6
6
public class Inventory { private final List<Instrument> inventory; public Inventory() { inventory = new LinkedList<>(); } public void addInstrument(String serialNumber, double price, InstrumentSpec spec) { Instrument instrument = null; if (spec instanceof GuitarSpec) { instrument = new Guitar(serialNumber, price, (GuitarSpec) spec); } else if (spec instanceof MandolinSpec) { instrument = new Mandolin(serialNumber, price, (MandolinSpec) spec); } inventory.add(instrument); } public Instrument get(String serialNumber) { for (Instrument instrument : inventory) { if (instrument.getSerialNumber().equals(serialNumber)) { return instrument; } } return null; } public List<Instrument> search(InstrumentSpec searchSpec) { List<Instrument> matchingInstruments = new LinkedList<>(); for (Instrument instrument : inventory) { if (instrument.getSpec().matches(searchSpec)) { matchingInstruments.add(instrument); } } return matchingInstruments; }}
7
7 QUALITY. PRODUCTIVITY. INNOVATION.
8
8 QUALITY. PRODUCTIVITY. INNOVATION.
9
9 QUALITY. PRODUCTIVITY. INNOVATION.
10
10 QUALITY. PRODUCTIVITY. INNOVATION.
11
11 QUALITY. PRODUCTIVITY. INNOVATION.
12
12 QUALITY. PRODUCTIVITY. INNOVATION.
13
13 QUALITY. PRODUCTIVITY. INNOVATION.
14
14 QUALITY. PRODUCTIVITY. INNOVATION.
15
15 QUALITY. PRODUCTIVITY. INNOVATION.
16
16 QUALITY. PRODUCTIVITY. INNOVATION.
17
17
The great ease-of-change challenge
QUALITY. PRODUCTIVITY. INNOVATION.
18
18 QUALITY. PRODUCTIVITY. INNOVATION.
19
19 QUALITY. PRODUCTIVITY. INNOVATION.
20
20 QUALITY. PRODUCTIVITY. INNOVATION.
21
21 QUALITY. PRODUCTIVITY. INNOVATION.
QUALITY. PRODUCTIVITY. INNOVATION.
Secrieru RaduJunior Developer