Ø Adapter Ø Bridge Ø Composite Ø Decorator Ø Facade Ø Flyweight Ø Proxy

Līdzīgi dokumenti
Red button

Bakalaura darbu un maģistra darbu tēmas

2.2/20 IEGULDĪJUMS TAVĀ NĀKOTNĒ! Eiropas Reģionālās attīstības fonds Prioritāte: 2.1. Zinātne un inovācijas Pasākums: Zinātne, pētniecība un at

Oracle SQL teikuma izpildes plāns (execution plan)

OWASP Top 10 Latvijā Biežākās drošības problēmas 4mekļa lietojumos Agris Krusts, IT Centrs, SIA

saraksts_renault_vasaras_noliktavas_03_07

Tehniskās prasības darbam ar VISMA Horizon un HoP Aktualizēts

NISSAN LEAF & LEAF e+ tabula, Nissan papildu pakalpojumi LV-04C-1186 NISSAN LEAF

K 5 ( )

saraksts_dacia_30_05

Hyundai i20 Modelis i20 Hatchback i20 Hatchback i20 Hatchback Komplektācija 1.2 Mpi ISG Comfort 5MT 75 zs 1.2 Mpi ISG Comfort 5MT 75 zs 1.2 Mpi ISG Co

Noteikumi_NEUTRAL_ar atļauju

NISSAN NAVARA MY LV-14C-1192 Nissan Navara

G.Plivna-sistemanalize

Microsoft Word - mailstore-server-product-overview-lv-v12.docx

Ģeotelpisko datu infrastruktūras nozīme Viedās pilsētas pārvaldībā Ervins Stūrmanis SIA «Mikrokods» Bismart konference «Vieda pilsētvid

LU 68 Fizikas sekcija DocBook

07 - Martins Orinskis - FED.pptx

NISSAN MICRA Nissan papildu pakalpojumi LV-01C-1201 NISSAN MICRA

Mūsu programmas Programmu ilgums 1 semestris 15 nodarbības 1,5 h nodarbības ilgums

Genorise Scientific Catalog.xls

SEAT NOLIKTAVAS IZPĀRDOŠANA LĪDZ 30. JŪNIJAM Piesakies testa braucienam! Automašīnu skaits ierobežots Autobrava, SIA Biķernieku iela 145, Rīga, LV-102

Nintex Workflow 2010 instalēšanas ceļvedis Instalēšanas ceļvedis Nintex USA LLC 2012, visas tiesības paturētas. Kļūdas un izlaidumi novērsti.

Kia Niro HEV MY20 Cenu lapa KIA Niro HEV MY20 ĀTRĀS SAITES Piedziņa Dzinējs Pārnesumu kārba Komplektācija Cena 4x2 1.6 GDI 6DCT Automātiskā LX

RietumuAPI_PSD2_v1_LV

Dārzā Lidijas Edenas teksts Andras Otto ilustrācijas Zaķis skatās lielām, brūnām acīm. Ko tu redzi, zaķīt? Skaties, re, kur māmiņas puķu dārzs! Nē, nē

suzuki vitara izpardošana-2

Elektronikas, elektrotehnikas un saistīto nozaru uzņēmumu darbinieku profesionālo zināšanu pilnveides apmācības (7.daļa) IEPIRKUMS (iepirkuma identifi

Autentifikācija Windows darbstacijās ar eid viedkarti Konfigurācijas rokasgrāmata Konfigurācija atbilst Windows Server 2012 R2 un Windows Server 2008

Cenrādis uzņēmumiem Spēkā no Arhīvs Konti un Komplekti Pakalpojumu komplekts Biznesa komplekts jaundibinātiem uzņēmum

Kārtības 2. pielikums "Latvijas Bankas elektroniskās klīringa sistēmas (EKS) funkcionālais apraksts"

A LA CARTE ĒDIENKARTE

Dacia SANDERO Cenu lapa Dacia SANDERO Aprīkojuma līmeņi Piedziņa Dzinējs Transmisija Cena (EUR ar PVN) ACCESS Hečbeks Sce 75 manuālā

PowerPoint Presentation

Microsoft Word - kn758p1.doc

WEB izstrāde IEPIRKUMS (iepirkuma identifikācijas Nr. 6-8/A-39) Pasūtītājs: Nosaukums: Biedrība Latvijas Elektrotehnikas un elektronikas rūpniecības a

LV L 274/38 Eiropas Savienības Oficiālais Vēstnesis EIROPAS CENTRĀLĀ BANKA EIROPAS CENTRĀLĀS BANKAS LĒMUMS (2009. gada 6. oktobris), ar ko

FORD ECOSPORT Spēkā no Dzinējs, transmisija Aprīkojums Degviela CO 2 (g/km) Cena, EUR ar PVN Atlaide Akcijas cena, EUR ar PVN 1,0l EcoBoos

Ātrs un mežonīgs

Cenas i10 i10 MY19 Komplektācija Transmisija Jauda kw/zs Cena EUR iesk. PVN 1.0 MPI Fresh 5MT 47/ MPI Comfort 5MT 47/

Beo4 Papildu pogu leksikons

Mēbeļu piedāvājums / Office furniture offer

JustPaste.it/qznt

RENEGADE CENRĀDIS JEEP automašīnu pārdošanas saloni: SIA Autobrava MEŽCIEMS Biķernieku iela 145, Rīga Tel SIA TC MOTORS Krasta st. 40

Slide 1

ipod shuffle Lietošanas instrukcija

LEAF_Klientu_cenu_lapa_New LEAF Line-up_ _0962

Microsoft Word - Papildmaterials.doc

ipod nano Iestatīšanas pamācība

DATORMĀCĪBA

Balcony glazing systems, series 630, 650

Piezīmjdatora E-rokasgrāmata

LV11061 Pirmais izdevums Februāris 2016 E-rokasgrāmata

LV11215 Otrais izdevums Janvāris 2016 E-rokasgrāmata

Dacia LOGAN Cenu lapa Dacia LOGAN Aprīkojuma līmeņi Piedziņa Dzinējs Transmisija Cena (EUR ar PVN) ACCESS Sedans SCe 75 manuālā AMBIA

LV10524 Pirmais izdevums Septembris 2015 ASUS Piezīmjdatora E-rokasgrāmata

LV10572 Otrais izdevums Oktobris 2015 E-rokasgrāmata

Microsoft Word - Internet_metod_paligmateriali.DOC

HORIZONTĀLAIS SAULES PULKSTENIS. LUDZA Laukuma rekonstrukcija pie Ludzas novada ēkas Raiņa un Stacijas ielau krustojumā. Stacijas iela 38, Ludza LD -1

COMPASS CENRĀDIS JEEP automobiļu pārdošanas saloni: SIA Autobrava MEŽCIEMS Biķernieku iela 145, Rīga Tel SIA TC MOTORS Krasta st. 40,

Ābeļu hlorotiskās lapu plankumainības vīrusa izplatība plūmju stādījumos = Occurrence of Apple Chlorotic Leaf Spot Virus in Plum Orchards

Microsoft Word - ZinojumsLV2015_2.doc

PFL8008

„Latvijas augļkopības zinātnes starptautiskās atpazīstamības un konkurētspējas veicināšana”

Slide 1

cert v2

Slide 1

RĪGAS TEHNISKĀ UNIVERSITĀTE Datorzinātnes un informācijas tehnoloģijas fakultāte Lietišķo datorsistēmu institūts Artūrs BARTUSEVIČS Doktora studiju pr

Slide 1

Transkripts:

\

Ø Ø Adapter Ø Bridge Ø Composite Ø Decorator Ø Facade Ø Flyweight Ø Proxy

Ø Ø Structural Pattern

Ø Ø Ø Ø Ø

Ø Ø Adapter Ø Bridge Ø Composite Ø Decorator Ø Facade Ø Flyweight Ø Proxy

Ø Ø

Ø Ø Ø Ø

Ø Ø Adapter Adaptee Ø Ø

Ø Ø Adapter Pattern Wrapper Ø

Ø Client Target Adaptee + request () + specificrequest () Adapter + request () specificrequest();

Ø Ø public class Adapter extends Adaptee implements Target { } public void request() { specificrequest(); } Client Target Adaptee + request () + specificrequest () Adapter + request () specificrequest();

Ø Ø public class Adapter extends Target { private Adaptee adaptee; public Adapter(Adaptee adaptee) { } this.adaptee = adaptee; } public void request() { adaptee.specificrequest(); }

Ø Ø cry move

Ø Ø Robot Dog + + cry () move () : void : void + + wang () run () : void : void DogAdapter + + cry () move () : void : void

Ø Ø adapter

Ø Ø

Ø Ø Java C#

Ø Ø

Ø Ø Java JDBC Java SQL Ø JDBC SQL Server Oracle MySQL JDBC JDBC Ø JDBC API

Ø Ø Adapter Ø Bridge Ø Composite Ø Decorator Ø Facade Ø Flyweight Ø Proxy

Ø Ø 4

Ø 1 2

Ø Ø Ø

Ø

Ø Ø Bridge Pattern Ø

Ø Client Abstraction + operation () impl Implementor + operationimpl () RefinedAbstraction ConcreteImplementorA ConcreteImplementorB + operation () + operationimpl () + operationimpl ()

Ø Ø public interface Implementor { } public void operationimpl(); public abstract class Abstraction { protected Implementor impl; public void setimpl(implementor impl) { } this.impl = impl; } public abstract void operation();

Ø Ø public abstract class Abstraction { protected Implementor impl; public void setimpl(implementor impl) { } this.impl = impl; } public abstract void operation();

Ø Ø Abstraction Implementation

Ø Ø

Ø Ø Red + bepaint (String pentype, String name) Green : void # color : Color + + Pen setcolor (Color color) draw (String name) {abstract} : void : void color Color + bepaint (String pentype, String name) : void + bepaint (String pentype, String name) Blue + bepaint (String pentype, String name) White : void : void SmallPen + draw (String name) : void BigPen + draw (String name) : void + bepaint (String pentype, String name) Black + bepaint (String pentype, String name) : void : void MiddlePen + draw (String name) : void

Ø Ø bridge

Ø Ø

Ø Ø

Ø Ø

Ø Ø (1) JavaJava

Ø Ø (2) Java (LookAndFeel) JavaUnix Motif Windows Windows Macintosh MacintoshJava Peer Java AWT GUIPeerAWT Peer

Ø Ø

Ø Ø

Ø Ø Adapter Ø Bridge Ø Composite Ø Decorator Ø Facade Ø Flyweight Ø Proxy

Ø Ø WINDOWS s

Ø Ø Ø

Ø Ø

Ø Ø Composite Pattern - Ø

Ø Component Client + + + + operation () add (Component c) remove (Component c) getchild (int i) Leaf + operation () for(component child:children) { child.operation(); } + + + + Composite operation () add (Component c) remove (Component c) getchild (int i) children

Ø Ø Ø Ø

Ø Ø AbstractElement {abstract} + + + + add (AbstractElement element) remove (AbstractElement element) get (int i) method () : void : void : AbstractElement : void list File + method () : void - list : AbstractElement[] + + + + Folder add (AbstractElement element) remove (AbstractElement element) get (int i) method () : void : void : AbstractElement : void

Ø Ø public abstract class Component { } public abstract void add(component c); public abstract void remove(component c); public abstract Component getchild(int i); public abstract void operation();

Ø Ø public class Composite extends Component { private ArrayList list = new ArrayList(); public void add(component c) { list.add(c); } public void remove(component c) { list.remove(c); } public Component getchild(int i) { (Component)list.get(i); } public void operation() { for(object obj : list) { ((Component)obj).operation(); } } }

Ø Ø public class Leaf extends Component { } public void add(component c) { // Exception: forbidden operation } public void remove(component c) { // Exception: forbidden operation } public Component getchild(int i) { // Exception: forbidden operation } public void operation() { // Implementation }

Ø Ø (Plate) (Apple) (Banana) (Pear)

Ø Ø MyElement {abstract} + eat () : void list Apple Banana Pear - list : ArrayList Plate + eat () : void + eat () : void + eat () : void + + + eat () add (MyElement element) remove (MyElement element) : void : void : void

Ø Ø (Chapter 12 Composite\sample01)

Ø Ø Ø Ø Ø Ø

Ø Ø Ø Ø Ø

Ø Ø Ø Ø Ø

Ø Ø 1 XML <?xml version="1.0"?> <books> <book> </book> <author>carson</author> <price format="dollar">31.95</price> <pubdate>05/01/2001</pubdate> <pubinfo> <publisher>mspress</publisher> </pubinfo> </books> <state>wa</state>

Ø Ø 2

Ø Ø Adapter Ø Bridge Ø Composite Ø Decorator Ø Facade Ø Flyweight Ø Proxy

Ø

6 10 15 15 1 15 10 15 2013 Ø Ø Ø 9 2 3 Ø Decorator

Ø Ø

Ø Ø Decorator Pattern Responsibility Ø

Ø Component + operation () ConcreteComponent Decorator component + operation () component.operation(); + operation () ConcreteDecoratorA - addedstate : + operation () super.operation(); addedbehavior(); ConcreteDecoratorB + + operation () addedbehavior ()

Ø Ø Ø

Ø Ø public class Decorator extends Component { } private Component component; public Decorator(Component component) { this.component = component; } public void operation() { } component.operation();

Ø Ø public class ConcreteDecorator extends Decorator { public ConcreteDecorator(Component component) { super(component); } public void operation() { super.operation(); addedbehavior(); } public void addedbehavior() { // } }

Ø Ø

Ø Ø

Ø Ø (decorator)

Ø Ø Ø Ø Ø Ø

Ø Ø

Ø Ø JList list = new JList(); JScrollPane sp = new JScrollPane(list);

Ø Ø 2 JDKJava IO Ø InputStream

Ø Ø 2 FilterInputStream protected volatile InputStream in; protected FilterInputStream(InputStream in) { this.in = in; } FileInputStream infs = new FileInputStream("temp/fileSrc.txt"); BufferedInputStream inbs = new BufferedInputStream(inFS); // byte[] data = new byte[1024]; inbs.read(data);

Ø Ø Adapter Ø Bridge Ø Composite Ø Decorator Ø Facade Ø Flyweight Ø Proxy