Tietgen Skolen Trick med facadeklasse og serialisering ”Trick” – model ”samles” til eet overordnet objekt Alle klasser i model skal have attriutten [Serializable]

Slides:



Advertisements
Lignende præsentationer
Kort om JavaScript Afvikles i browser på klienten Sendes fra server (php, asp, aspx, htm) eller startes i klient som htm/html fil. Skabelon: –”main” -
Advertisements

Velkommen til Softwarekonstruktion
07 – Kort om OO Introduktion.
T1 – OPGAVE 14.2 LINETT & SABRINA Klasse Varer namespace Opgave_14._2 { class Varer { private string vare; private string farve; private double.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Programmeringsteknologi: Lektion 1
Distribueret programmering, specielt.NET Remoting Rasmus D. Lehrmann DM
Object-Orienteret Programmering og Design. 2 Nordjyllands Erhvervakademi – 2009 Indhold “Classes, objects and object-oriented programming (OOP) play a.
Lavet af: Paw Petersen Design Design Class Diagram (DCD)
MaxiBio Planlægning Eksempel på skærmbilleder med navigation og tilhørende kode.
1 Filer - intro Data-hierarki Filer og strømme (eng.: streams) af bytes Klasserne File og Directory Oprettelse af sekventiel tekstfil Læsning af data fra.
Exceptions. 2 Nordjyllands Erhvervakademi – 2009 Objectives “Unfortunately, errors are a part of life. Some are detected by the compiler, some are detected.
Hvordan man skriver koden.
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
Medtag.NET komponent for serialisering med DataContracts.
Structs Structs allokeres på stakken Memory-allokering sker ved oprettelse af variabel og ikke ved new Der kan defineres metoder incl. Constructor. Eksempel.
Dag 2 varekatalog Broadcast: session-id (samme session-id hver gang) Formiddagens arbejde:
Programering af mobile enheder Windows Phone Storage.
NOEA/IT - FEN1 Typeparametisering/Genericity Generics i.NET 2 og C#
1 Tråde 2 Plan Trådbegrebet Synkronisering Koordinering Eksempel: et flertrådet spil.
Lektion 7 Læsestof: Kopier fra Caranno
Fundamentale datastrukturer
Mønstre En lille introduktion. Singleton Tilgå et objekt igennem klassereference i stedet for objektreference.  Overflødiggør referencer til objektet.
Eksempel på realisering af domænemodel
GP 8, 24/ Grundlæggende programmering Efterår 2001 Forelæsning 8 onsdag 24/ kl. 9:15 – 12:00.
Forelæsning 5.1 Brug af klassen Collections og interfacet Comparable samt parametriserede typer Projektuge: Ants and Spiders / Lommeregner dIntProg,
10. Datastrukturer. 2 Nordjyllands Erhvervakademi Collections library Datastrukturer i.NET kaldes normalt Collections Findes i namespace System.Collections.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Repetition: Introduktion til OOP med C# og .NET
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
11 - Exceptions. 2 NOEA2009Java-kursus – Exceptions Hvad er en exception? En undtagelse. Typisk en fejl der opstår runtime Afbryder det normale programflow.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
FEN IntroJava AAU1 Endnu mere om Klasser og Objekter Mange til mange relationer Student-Course v3.
KF04 GRAY Item 2, 12, 22, 32, 42, 52. Consider a builder when faced with many constructor parameters Item 2.
C#: Udtryk og metoder Kilde: Joe Hummel. 2 Nordjyllands Erhvervakademi – 2008 Indhold “With regards to programming statements and methods, C# offers what.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Blå gruppe: Søren, Alexander, Torben, Lasse. De 4 vigtige items: - Singelton - Override clone judiciously - Use interfaces only to define type - Prefer.
Tekst filer Tekstfiler opbygges normalt af linier, hvor disse ikke behøver at være samme længde. Når man skal arbejde med tekstfiler, ønsker man metoder.
Identitet vs lighed. Spørgsmål Hvad udskriver run metoden? 1.”Ens!” 2.”Forskellige!” 3.Ved ikke public class Driver{ public static void run(){ String.
Effective Java Blå gruppe. Item 18: Interfaces frem for abstrakte klasser Kan implementeres i klasser der ikke nedarver Eksisterende klasser kan nemt.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler.
Variabler, klassevariabler, identitet og lighed, collections
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6B.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design -> kode Mapning af et klassediagram til kode.
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
DAIMIIntroducerende objektorienteret programmeringkd.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
Indledende Programmering Uge 6 - Efterår 2006
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
 Jens Bennedsen 2002Objektorienteret systemudvikling1.1 Objektorienteret design Persistens - introduktion.
 Jens Bennedsen 2001Multimedie programmering3A.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
Klasser og objekter. dIntProg, F08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Solution Makers A/S – Gruppe 4 Lars Wolter Nils Martinsen Rasmus Seye Tobias Kjeldsen 1.
WebApi service part 2 Routning og Action Simpel test-client (javascript) Session og Application data.
WebApi service x.
Klasser og objekter (Afsnit i manualen).
Simpel test-client (javascript) Session og Application data
(brug af MVVMStarterLibrary2018)
MVVM ViewModel Klasser
Quiz – Uge 3 – torsdag – første time
Forelæsning Uge 4 – Torsdag
Præsentationens transcript:

Tietgen Skolen Trick med facadeklasse og serialisering ”Trick” – model ”samles” til eet overordnet objekt Alle klasser i model skal have attriutten [Serializable] Når det overordnede modelobjekt serialiseres vil alle de tilknyttede objekter og felter ”følge med” Der laves en facadeklasse, der ”holder” det overordnede model objekt som en klasse-variabel Facade-klassen tager sig af evt. indlæsning (load) af model objekt, samt forsynes også med metode for at gemme (save) model-objekt.

Tietgen Skolen For at objekter kan serialiseres skal klassen forsynes med attributten [Serializable] og alle objektets data skal ligeledes være serializable Klassen Vare: ……. [Serializable] public class Vare : System.IComparable { …………… Klassen Varekartotek: ……. [Serializable] public class Varekatalog { …………… Klassen Varesalg: ……. [Serializable] public class Varesalg { …………… Klasser defineres som Serializable

Tietgen Skolen using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using System.IO; using System.Runtime.Serialization.Formatters.Binary; namespace VarekartotekWindowsApplication { public class ModelFasade { // Bemærk at static betyder at felter og metoder er // er på klassen og der ikke laves objekter af typen // ModelFacade private static Varekatalog varekataloget; // klasse instans private static string DEFAULT_FILENAME = "Varekatalog.bin"; Eksempel på Facade med serialisering

Tietgen Skolen // klassemetode der kaldes direkte uden at have et objekt //..... = ModelFacade.Varekataloget; public static Varekatalog Varekataloget { get { if (varekataloget == null) LoadVarekataloget(); // sikre load første gang // det bruges return varekataloget; // bemærk klasse instans } Eksempel på Facade med serialisering

Tietgen Skolen private static void LoadVarekataloget() { // hent filnavn med "stifinder" facilitet // normalt bør det undgås at placere GUI her, // men det er en praktisk "beskidt" måde for os // at undgå øget kompleksitet / eller fast filnavn OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.FileName = DEFAULT_FILENAME;// startværdi DialogResult dres = openFileDialog.ShowDialog(); if (dres == DialogResult.Cancel) { varekataloget = new Varekatalog(); // opret tomt } else { string filnavn = openFileDialog.FileName; FileStream fileStream = new FileStream(filnavn, FileMode.Open); BinaryFormatter binaryFormater = new BinaryFormatter(); // hent objekt og typecast til rigtig type varekataloget = (Varekatalog)binaryFormater.Deserialize(fileStream); fileStream.Close(); } Eksempel på Facade med serialisering

Tietgen Skolen public static void SaveVarekataloget() { // hent filnavn med "stifinder" facilitet SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.FileName = DEFAULT_FILENAME;// startværdi saveFileDialog.ShowDialog(); string filnavn = saveFileDialog.FileName; // Objektet med alle refererede elementer gemmes // serialiseret som fil FileStream fileStream = new FileStream(filnavn, FileMode.Create); BinaryFormatter binaryFormater = new BinaryFormatter(); binaryFormater.Serialize(fileStream, varekataloget); fileStream.Close(); } Eksempel på Facade med serialisering

Tietgen Skolen Tilgang til model gennem facade klassen Her eksempel på tilgang fra en funktionsklasse using System; using System.Collections.Generic; using System.Text; namespace VarekartotekWindowsApplication { public class TestFunktioner { public static void OpretTestvarer() { // hent varekatalog objekt // dette kunne også være overføret som parameter Varekatalog varekatalog = ModelFasade.Varekataloget; // Brug objekt til at oprette test varer Vare vare1001 = varekatalog.OpretVare(1001, "A4 blok ternet med huller", 3.98f, "kasser", 3.68f, 100); Vare vare1002 = varekatalog.OpretVare(1002, "A4 blok linieret med huller", 3.88f, "boxe", 3.65f, 20); Vare vare1003 = varekatalog.OpretVare(1003, "Blyant Viking 400x2", 0.64f, "æsker", 0.50f, 500); Vare vare1004 = varekatalog.OpretVare(1004, "Blyant Viking 800x2", 0.66f, "æsker", 0.55f, 200); vare1004.RegistrerVarerSolgt(102); vare1004.RegistrerVarerSolgt(23); }