Lab3 Sprawozdanie

Inżynieria Oprogramowania

MVP

Wydział Mechaniczny Politechniki Krakowskiej

Instytut Informatyki Stosowanej

Rok Akademicki 2011/2012, Grupa 13K3

Rafał Polak 13k3

29-01-2011

Sprawozdanie z Laboratorium Komputerowego

Model View Presenter

  1. Ogólne informacje

Wzorzec Projektowy – to ogólne rozwiązanie często spotykanego problemu w specyficznym przypadku. Wzorce powstają z doświadczenia ekspertów w danej dziedzinie.

MVP – jest to pochodna MVC (Model – View – Controler) wzorca oprogramowania. Podobnie jak MVC wykorzystywany jest do tworzenia interfejsów użytkownika, aby oddzielić warstwę aplikacji od warstwy komunikacji z użytkownikiem.

Model ten oddziela od siebie warstwy aplikacji tworząc ją przejrzystą i hierarchiczną
jednocześnie przyporządkowując warstwom odpowiednie zadania i polecenia podczas pracy programu.

Warstwa Prezentacji odpowiada za funkcjonalności pomiędzy warstwą Modelem a Widokiem. W modelu MVC odpowiada za to Kontroler. Widok odpowiedzialny jest za obsługę zdarzeń interfejsu użytkownika UI, natomiast ostatnia warstwa odpowiada za opisanie atrybutów, podmiotów i ról wewnątrz aplikacji, dzięki czemu zwiększa się inteligencja programu.

  1. Cel MVP

MVP jest wzorcem projektowym zaprojektowanym w celu ułatwienia automatycznego testowania urządzeń i oprogramowania na nich zainstalowanych.

Model definiuje dane które mają być wyświetlane lub w jakiś inny sposób mogą wpłynąć na interfejs użytkownika.

Widok odpowiada głównie za wyświetlanie danych z powyższego Modelu oraz bada czas i trasy powtórzeń.

Prezenter działa z połączenia tych dwóch klas i jednocześnie podbiera dane z repozytoriów dla modelu oraz formaty do wyświetlenia w widoku.

Widok jest elementem pasywnym, który przekazuje wszystkie informacje do prezentera. Prezenter gdy zostaje wywołany łączy się z Modelem i Widokiem pobierając od niego dane za pomocą metod. Następnie dopiero aktualizuje on model. Różne wersje MVP umożliwiają swobodę w odniesieniu do odwołań interakcji, zdarzeń i poleceń.

  1. Cel Ćwiczenia

Na ćwiczeniach stworzyliśmy aplikację opartą o model MVP, aby zobaczyć działanie modelu w praktyce. Niezbędne było utworzenie projektu składającego się z trzech wartsw Modelu, Prezentera i Widoku.

Interfejs Modelu został zdefiniowany:

namespace Model

{

public interface IModel

{

Element getElement();

void setElement(Element element);

}

}

Dołączyliśmy także klasę zdefiniowaną w interfejsie Modelu tworzącą interfejs oraz klasę ELEMENT zawierającą element będący testowymi danymi.

namespace Model

{

public class Model : IModel

{

private Element element;

public Element getElement()

{

if (element == null)

element = new Element();

return element;

}

public void setElement(Element element)

{

this.element = element;

}

}

}

namespace Model

{

public class Element

{

public string Imie { get; set; }

public string Nazwisko { get; set; }

private IList<string> przedmioty;

public IList<string> Przedmioty { get { return this.przedmioty; } }

internal Element()

{

Imie = "Rafał";

Nazwisko = "Pola";

przedmioty = new List<string>();

przedmioty.Add("Komunikacja Człowiek Komputer");

przedmioty.Add("Inzynieria Oprogramowania");

przedmioty.Add("Programowanie Obiektowe");

}

}

}

Warstwa Prezentacji łącząca dwie skrajne warstwy posiada zdefiniowany interfejs oraz klasę odwołującą i komunikującą się z Modelem i Widokiem:

namespace Prezenter

{

public interface IPrezenter

{

string Imie { get; set; }

string Nazwisko { get; set; }

IList<string> Przedmioty { get; }

void saveDate();

}

}

namespace Prezenter

{

public class Prezenter : IPrezenter

{

Model.IModel model;

Model.Element element;

View.IView view;

public Prezenter(View.IView view)

{

this.view = view;

model = new Model.Model();

element = model.getElement();

view.Imie = Imie;

view.Nazwisko = Nazwisko;

view.Przedmioty = Przedmioty;

}

public string Imie

{

get

{

return element.Imie;

}

set

{

element.Imie = value;

}

}

public string Nazwisko

{

get

{

return element.Nazwisko;

}

set

{

element.Nazwisko = value;

}

}

public IList<string> Przedmioty

{

get { return element.Przedmioty; }

}

public void saveDate()

{

this.element.Imie = this.view.Imie;

this.element.Nazwisko = this.view.Nazwisko;

model.setElement(this.element);

}

}

}

Interfejs widoku został zdefiniowany w tej samej warstwie prezentacji.:

namespace View

{

public interface IView

{

string Imie { get; set; }

string Nazwisko { get; set; }

IList<string> Przedmioty { set; }

}

}

  1. Rezultat i Wniosek

W Prosty i szybki sposób można budować rozwinięte aplikację zachowując hierarchię w kodzie i wykonywaniu się programu.

MVP pozwala implementować różne interfejsy użytkownika i w prosty sposób stosować wcześniej napisany kod, niczym wymiana szuflady.

Forma przedstawienia danych została zaimplementowana poniżej widoku, dzięki czemu można w łatwy i prosty sposób manipulować wyglądem programu i jego edycją. Natomiast Model posiada niezbędne dane do przetworzenia przez program.


Wyszukiwarka

Podobne podstrony:
I6A1N2, Lab3-sprawozdanie
WEiP-MichalTurzynski-lab3, Sprawozdanie 3 (WEiP-2009)
Lab3 sprawozdanie
I6A1N2 Lab3-sprawozdanie
lab3 sprawozdanie Natka 3M
lab3 Sprawozdanie
Lab3 Sprawozdanie id 259581
mie lab3 sprawozdanie pomiary mocy, Mechatronika, 2 Rok
Lab3-sprawozdanie
lab3, sprawozdanie Natka 3M
ZUE lab3 sprawozdanie z11
lab3 sprawozdanie doc
sprawozdanie programowanie lab3
sprawozdanie oswietlenie, Studia, WAT Informatyka, s3 - GK - lab grafika komputerowa, Lab3
Lab3-Linux-en, studia, studia, sprawozdania, pomoce, Lab
Lab3-Linux, studia, studia, sprawozdania, pomoce, Lab
Mechanika płynów sprawozdanie z lab3 Kopia

więcej podobnych podstron