Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

08.09.2011, 17:50

[C#] Schulprojekt :/

hiho,

folgendes ... ich muss für die schule ein programm schreibe wo man 2 verschiedene oberflächen, 2 verschiedene Datenmodule und eine logikschicht hat
die oberflächen und datenmodule müssen sich austauschen lassen ohne das eine andere schicht angefasst wird ... aber ich hab keine ahnung wie das funktionieren soll ...

hat jemand da ein kleines und vor allem simples beispiel?

ps: sry mir is echt grad kein besserer thread name eingefallen :/

Union_Freedom

Treue Seele

Beiträge: 156

Wohnort: Nähe Hannover

Beruf: Student

  • Private Nachricht senden

2

08.09.2011, 18:07

Hey
Das sagt ja jetzt wirklich nicht viel aus. Was sollst du genau programmieren?
Für Oberflächen, Datenanbindung und Logik ist die WPF zu empfehlen.
Einfach mal googeln.


mfg
Union_Freedom
Coder bei: http://crushing-gods.de/ (Folgt uns)
Erste Eindrücke zu Crushing Gods Link

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

3

08.09.2011, 18:18

Denk dir eine Schnittstelle aus, die jeweils die zwei implementierungen der Schicht implementieren müssen.

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
interface IDatenmodul
{
    string LeseDaten();
}

/////

class DatenModulEins : IDatenmodul
{
    public string LeseDaten()
    {
        return "Hallo Welt";
    }
}

/////

class DatenModulZwei : IDatenmodul
{
    public string LeseDaten()
    {
        return "Hello World";
    }
}


Dann kannst du einfach über IDatenmodul mit dem Modul arbeiten ohne Wissen zu müssen, ob es jetzt modul eins oder zwei ist:

C#-Quelltext

1
2
3
IDatenmodul modul = new DatenModulZwei();

Console.WriteLine( modul.LeseDaten() );

4

08.09.2011, 19:51

ahh ok danke das hat mir geholfen!

hab nur noch ein problem ...

ich hab jetzt die 2 Oberflächen und 2 DatenModelle austauschen lassen die sich auch ohne weiteres
Nun wollte ich mittels einer delegate methode von der oberfläche aus eine methode im Controller aufrufen

nun hab ich 2 möglichkeiten entweder ich mach alles static im Controller oder ich erzeuge mir noch nen objekt in der View ... find ich aber beides nich sonderlich schön ... überseh ich was? oder muss ich mich für eines entscheiden?

idontknow

unregistriert

5

09.09.2011, 02:06

Was er meint ist eben ein ganz spezielles Prinzip (dessen Name mir nicht einfällt..) der Programmierung in der GUI, Logik und Daten soweit wie möglich unabhängig voneinander sind und dadurch beliebig austauschbar. Gibtn speziellen Namen dafür..

6

09.09.2011, 02:11

Ich hab' mir nicht den ganzen Thread durchgelesen (auch, wenn er nicht lang ist), aber idontknow, vielleicht meinst Du MVC, "Model-View-Controller". http://de.wikipedia.org/wiki/Model_View_Controller

idontknow

unregistriert

8

09.09.2011, 08:08

danke, das is interessant ... aber es hilft mir leider nich bei der lösung meines problems weiter :/

Fireball

Alter Hase

Beiträge: 415

Wohnort: Werne

Beruf: Dipl. Inf.

  • Private Nachricht senden

9

09.09.2011, 13:39

Ich habe es eher so verstanden.

Du hast eine 3 Schichten Modell.

1. Schicht GUI

2. Schicht Logik

3. Schickt Datenhaltung

Ich denke die Aufgabe ist hier, dass du den Sinn einer Mehrschichtigen Architektur erkennst.

Ich würde einfach folgendes machen. Definiere für jede Schicht ein Interface, welches die nächst höhere Schicht als Schnittstelle verwendet.

Da du Interfaces gebaut hast kannst du nun einfach eine der Schichten gegen eine andere austauschen, die dann das Interface neu implementieren.

Typische Beispiele dafür sind eine neue GUI oder Datenhaltung (von MySQL oder Oracle oder so). Ein weiterer Vorteil ist auch, dass du in einem großen Software Projekt
die Schichten durch unterschiedliche Teams implementieren lassen kannst. Der Architekt muss dafür nur die Schnittstellen festlegen, die von allen eingehalten werden muss.

Gruß

Fb

10

09.09.2011, 14:01

joar aber die Gui braucht doch dann ein objekt von der logik schicht oder? oder ich mach es statisch ... was is da die bessere variante?

Werbeanzeige