Upload
cyrus-rosa
View
27
Download
0
Embed Size (px)
DESCRIPTION
Információs környezetek a szervezésben és a tervezésben. Vég Csaba [email protected]. I. A probléma. OO?. Pont és Egyenes osztály? Illeszkedés vizsgálat: Pont osztályban? Egyenes osztályban? statikus metódus?. Kör és Egyenes metszéspontjai?. OO?. - PowerPoint PPT Presentation
Citation preview
www.xsys.hu
I. A probléma
www.xsys.hu
OO?
Pont és Egyenes osztály?
Illeszkedés vizsgálat:Pont osztályban?Egyenes osztályban?statikus metódus?
Kör és Egyenes metszéspontjai?
www.xsys.hu
OO?
Játékprogram: szobában felrobbanó bomba megsérti a játékost
1. Játékos ellenőrzi, hogy hat-e rá valami2. A Bomba kezdeményez:
Bomba.robban: játékosok megkeresése Játékos.sérülés: hatás felvétele
Hogyan lehet módosítani/szűrni a hatást (varázsszoba)?
www.xsys.hu
OO?
Készítsünk olyan programot, amelyben egy billiárdgolyó halad egy téglalapban, és az oldalaknál irányt vált.Készítsünk olyan programot, amelyben két billiárdgolyó halad egy téglalapban, és az oldalaknál irányt vált. Ütközés?
Készítsünk olyan programot, amelyben tetszőleges számú billiárdgolyó halad egy téglalapban, és az oldalaknál irányt vált. Ütközés?
www.xsys.hu
Információs környezet
Információs környezet: Pont, Egyenes, Kör: Sík Játékos, Bomba: Szoba Biliárdgolyók: Biliárdasztal
Legalapvetőbb jellemzők ismerheti a tulajdonságait ismerheti az elemek viszonyait felelős a hatások átviteléért: közeg ismerheti a benne elhelyezkedő elemeket
www.xsys.hu
Információs környezet
„design pattern”
tradícionális OO egyszerű kiegészítése
szemlélet: OO: alkalmazás széttöredezése objektumokra Információs környezetek: viszonyokban való
gondolkodás
www.xsys.hu
Példák
JavaScript: „külső”-„belső” objektumok
Java belső osztályok: elérik a külső objektum attribútumait és műveleteit
BeanContext: a környezetek szolgáltatásokat definiálhatnak
www.xsys.hu
II. Jellemzők
www.xsys.hu
A szerkezet…
a csomag-hierarchiákhoz hasonlóak, de változókkal és műveletekkel („szolgáltatásokkal”) is rendelkeznek Java csomag: nem alkalmas
általában hierarchikus, ritkább esetben „dag” szerkezetet alkotnak JScript: hierarchikus objektum-rendszer
az alkörnyezet eléri a tartalmazó „szülő” környezet(ek)et JScript
egyetlen elem is tekinthető környezetként külső környezet elérhetőségének biztosítása
www.xsys.hu
Viszonyok...
A környezet definiálhatja az objektumok közötti viszonyokatstatikus metódus: „konstans” viszonynem statikus metódus (szűrési lehetőség):
átdefiniálhatókörnyezeti változók/más elemek
Egyetlen elem adott tulajdonsága
www.xsys.hu
Attribútumok…
a környezeteknek lehetnek aktuális értékeik, pl. az aktuálisan kezelt üzleti objektumok
a környezetek alapértelmezésként elérik a külső környezet aktuális értékeit, ill. átdefiniálhatják azokat
www.xsys.hu
Műveletek…
A környezeteken keresztül elérhetők szolgáltatások (műveletek) A környezethez kapcsolódó szolgáltatásnak célszerű
transzparensnek lenni: a környezetben meg kell ismételni a műveletet és a hívást delegálni kell
Az alkörnyezet elérheti a külső szolgáltatásait az alkörnyezetben célszerű megismételni a műveletet és a
hívást delegálni kell
Az alkörnyezet újabb szolgáltatásokat definiálhatAz alkörnyezet átdefiniálhatja a külső szolgáltatásait
www.xsys.hu
Származtatás-tartalmazás…
Attribútumok: a környezetek alapértelmezésként elérik a külső
környezet aktuális értékeit, ill. átdefiniálhatják azokat
Szolgáltatások: Az alkörnyezet elérheti a külső szolgáltatásait Az alkörnyezet újabb szolgáltatásokat definiálhat Az alkörnyezet átdefiniálhatja a külső
szolgáltatásait
www.xsys.hu
Elemek és hatások…
Ismerhetik az elemeket
A környezetek alkalmasak a hatások átvitelére, ill. esetleges szűrésére
EseménykezelésBubbling: DOM2
www.xsys.hu
III. Információs környezetek a fejlesztésben
www.xsys.hu
Ipari minőségű szoftver
környezetek: architektúra vázlépéssorozategzakt,egyszerűen alkalmazható
áttekinthető technológiafüggetlen rétegskálázható design
www.xsys.hu
ApplicationService
Service
Service
ModuleModule Service
Service
Model
UIModel
UI
Model
UI ServiceModule
www.xsys.hu
Alkalmazás ("videon")
VideonBase
VideonData Service
Service
Videon
VideonBaseTools
.sql.VideonData
VideonSqlData facade
működtetés
Business rules/procs
Service
Service
www.xsys.hu
Alkalmazás - kliens
VideonBase
VideonData Service
Service
Videon
VideonClientTools
.ejb.VideonData
Videon Service
Service
www.xsys.hu
Működtetés
Alkalmazás/ModulokElérik a felsők definícióit
Model (konkrét)EseménykezelésAktuális értékek (property-change jellegű)
Model
UI
Model
UI
Service
www.xsys.hu
ApplicationService
Service
Service
ModuleModule Service
Service
Model
UI
Model
UI
Model
UI
ServiceModule
www.xsys.hu
Business Facade:Business Rules
Környezetek alapján elhelyezésData Acces Facade
Data Facade + Data ItemTechnológiafüggetlen elérés + Scalable Design
www.xsys.hu
import xsys.*;
public interface Casette extends Entity {
public String getCode(); public void setCode( String code );
public Date getBorrowDate(); public void setBorrowDate( Date borrowDate ); public Movie getMovie(); // Kapcsolat! public void setMovie( Movie movie );
public Customer getCustomer(); // Kapcsolat! public void setCustomer( Customer customer );}
www.xsys.hu
public interface Movie extends xsys.Entity { public String getTitle(); public void setTitle(String title);
public String getOriginalTitle(); public void setOriginalTitle(String originalTitle);
public String getDistributor(); public void setDistributor(String distributor);
public int getReleaseDate(); public void setReleaseDate(int releaseDate); public String getReleaseDateString(); public void setReleaseDate(String releaseDate);
public String getDirector(); public void setDirector(String director);
public String getActors(); public void setActors(String actors);
public Casette eachCasette(); // több multiplicitás
public Advance eachAdvance(); // több multiplicitás}
www.xsys.hu
public interface Entity extends java.util.Iterator { public Object id(); // id public void save();
public int size(); // Collection-like public boolean isEmpty(); public void removeAll(); public void add(Object data); public void remove(Object data);
public boolean hasNext(); // Iterator/Cursor public Object next(); public void remove();}
www.xsys.hu
Használat
Movie movie=videon.getMovie(movieId);//for(Movie movie=videon.eachMovie(); movie.hasNext(); ){ movie.next(); ... if(…) movie.remove(); … } //movie.eachCasette().add( videon.createCasette( code ) );//movie.eachCasette().removeAll();//customer.eachCasette().isEmpty()
www.xsys.hu
Data Access Facade Teljes: összes strukturális művelet Kiterjesztés elemi adatokra ( Values ) Legalapvetőbb nyelvi eszközök Minimális redundancia! Tiszta („elvi”) kép a kliens/BusinessLayer felé Scalable Design
közvetlen adatelérés (JDBC) távoli adatelérés (RMI) J2EE EJB
Köszönöm a figyelmet!