• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

Kein Problem, sondern allgemeine Fragen in Richtung OOP

Mitglied seit
08.07.2000
Beiträge
707
Reaktionen
0
Wer programmiert hier im Sinne von OOP?
Wie geht ihr an eine Problematik heran?
Wie 'teilt' ihr Klassen ein?

Wenn Ihr ein GUI-BattleCalc für SC erstellen wolltet, wie würdet Ihr vorgehen?

#Dies ist rein hypothetisch
 

Wiseguy3

Guest
Original geschrieben von [For]Mordor
Wer programmiert hier im Sinne von OOP?
Ich. Aber so newbiemäßig, dass meine Beantwortung der restlichen Fragen ziemlich lächerlich wäre.
 
Mitglied seit
20.09.2001
Beiträge
1.355
Reaktionen
0
ich auch aber kann man schwer beantworten ist verschieden. finde die fragen auch recht komisch :D klassen teilt jeder individuell ein, is halt der jeweilige coding style, jeder geht anders an die problematik ran die einen hacken schnell los die anderen planen wochenlang aufm papier.
 

killerchicken_inaktiv

Guest
Nuja, ich wuerde generell sagen dass ich moeglichst viel vererbe (also viele kleine Klassen)... Andere gehen anders ran und schreiben eher groessere Klassen, ka, was genau willst du wissen?
 

The_Company

Guest
1) Hier! Ich mach OOP mit C

2) Draufloscoden. Wenn ich Code zuoft neu schreiben muss, entweder Funktionen oder Superklassen draus machen.

3) typedef struct { int damage; int hitpoints: int reload_time; } Unit;
static Unit units[] = { ... };
void fight (Unit *unit1, Unit* unit2) { }
und dann verfeinern.
(Die Frage war blöd :ugly: )
 

Wiseguy3

Guest
Ok, wenn ich mir das so durchlese, dann wäre meine Beantwortung auch nicht lächerlicher gewesen als der Rest hier. :D

Murkst keiner von euch beim "echten" Programmieren mit UML und sonem Zeugs rum?
 
Mitglied seit
20.09.2001
Beiträge
1.355
Reaktionen
0
yo was soll man zu so ner frage auch gross schreiben :D
könnte höchstens anmerken das ich so nen sc bcalc einfach loscoden würde, so kleine tools steck ich nich viel planung rein ^^
 
Mitglied seit
08.12.2001
Beiträge
2.053
Reaktionen
0
also ich progg oop mit c++ und teilweise c#, je nachdem um was es geht

wenn du dich an umfangreichere sachen ranmachst kann ich dir nur den guten rat geben dir einen block papier und einen bleistift zu nehmen und den ganzen scheiss vorher zu planen.
kleine programme kannste quasi bedenkenlos so anfangen und draufloscoden was dir gerade in den kopf kommt.
bei grösseren projekten funktioniert das alles nicht mehr so.
da fängste an und merkst nach 3000 zeilen code dass es so wie du dir das vorgestellt hast nicht funktioniert und du dein ganzes klassendesign umschmeissen musst (glaubs mir, die erfahrung hab ich schonmal gemacht :ugly: )

zum thema strukturierung:
das macht jeder anders und ist ganz einfach ne sache der erfahrung.
fang einfach an und schau wie du am besten zurechtkommst.
setz vererbung dort ein wo es sinnvoll ist, bei vielen sachen kann auch polymorphie sehr hilfreich sein

ich hab jetzt ka was du unter nem "battle calculator" verstehst.
aber wenn ich ein game wie bw neu mit 3D engine proggen würde dann würde ich das jetzt grob folgendermaßen machen

class object // alle objekte des games, die basisklasse für alles andere quasi, da würde ich z.b. koordinaten reinpacken

class renderable : object // alle objekte die graphisch dargestellt werden, diese objekte werden dann durch die renderpipe gejagt

class building: renderable // gebäude halt...

class unit : renderable // kein kommentar

class toss // könnte z.b. schilde implementieren
class terran
class zerg


class zealot : unit, toss
class siegetank : unit, terran
//...

class nexus : tossbuilding



nur mal so als beispiel...
man könnte z.b. in den basisklassen diverse funktionalitäten die sämtliche anderen klassen anbieten müssen unterbringen, wie z.b. das rendern, dann könnte man in der unitklasse z.b. funktionen wie move() oder attack() unterbringen
in der klasse "toss" könnte man z.b. schilde implementieren die dann sämtlichen abgeleiteten klassen zur verfügung stehen.

aber das konzept könnte man auch schon besser machen.
z.b. könnte man units und gebäude von einer gemeinsamen basisklasse ableiten welche beispielsweise hitpoints und methoden zum angreifen implementiert

wie gesagt es hängt von jedem selber ab wie man das ganze umsetzt, und ein richtig komplexes projekt mit oop zu designen ist nicht ganz so easy ^^
 

The_Company

Guest
Original geschrieben von Wiseguy
Murkst keiner von euch beim "echten" Programmieren mit UML und sonem Zeugs rum?
Nein, UML taugt meistens nichts. Genausowenig wie "code to spec" was taugt.

Normalerweise lassen sich grössere Projekte (zumindest die, in denen ich mitcode) gut in kleine Teilprojekte unterteilen. Open Source ist da natürlich besonders nice, weil kleine Teile da ne Haupt-Designphilosophie ist.
Und wenn man dann eine Schnittstelle designt, dann designt man ne kleine Schnittstelle für den Teil, an dem man gerade codet. Das Design muss dann noch nen bissel angepasst und vereinfacht werden, wenn die ersten Kommentare von den Leuten kommen, die die Schnittstelle benutzen. Und dann hat mans eigentlich schon.

Problematisch wird es immer nur dann, wenn man zu grosse Brocken auf einmal benutzt. Da kann man schonmal das Problem haben, dass nichts mehr geht.
Evolutionär coden, nicht revolutionär.

Und nen simpler BattleCalc braucht definitiv keine Objekthierarchie und schon gar kein UML Diagramm. IMO brraucht er nichtmal Objekte. Sowas schreibt man mal eben in Perl oder Python.
 
Mitglied seit
08.07.2000
Beiträge
707
Reaktionen
0
Das mit dem Battle Calc war auch nur ein Beispiel...

Btw. arbeite ich gerade (Beruflich) an einem Software Projekt welches mitlerweile doch recht umfangreich geworden ist und ich jetzt festgestellt habe, das meine Klasenstruktur einfach zu schlecht ist. Deshalb meine Frage nach euren Erfahrungen und das mit dem BattleCalc war nur als Beispiel für eine Diskussion für eine Klassenstruktur. Company, auch für ein solch kleines 'Projekt' würde ich eine Klassenstruktur nehmen ;).
 
Mitglied seit
08.12.2001
Beiträge
2.053
Reaktionen
0
man kanns auch übertreiben, für richtig kleine proggis würde ich vielleicht nichtmal oop benutzen weils die dinge teilweise sogar verkompliziert
 

The_Company

Guest
Original geschrieben von [For]Mordor
Company, auch für ein solch kleines 'Projekt' würde ich eine Klassenstruktur nehmen ;).
Also der DoM BattleCalc, den ich mir damals geproggt hab, der hatte keine Klassenstruktur, das wär viel zu kompliziert geworden. Der hatte nur nen Haufen Arrays.
 

Sas~iN~LoVe

Guest
Original geschrieben von Dari
ich auch aber kann man schwer beantworten ist verschieden. finde die fragen auch recht komisch :D klassen teilt jeder individuell ein, is halt der jeweilige coding style, jeder geht anders an die problematik ran die einen hacken schnell los die anderen planen wochenlang aufm papier.
genau.

solide planung ist (nicht nur bei oop) das a und o. wir planen normalerweise im team - oder zumindest mit anschliessender diskussion der eigenen vorschläge im team.

wie man seine klassen einsetzt und strukturiert ist sehr abhängig davon, um was für eine applikation es sich handelt und wie man diese strukturiert (lol, der satz sagt alles und gar nix ^^)

aber gewisse standard-klassen wie zb irgendwelche forms oder auch datenbankabstraktionsschichten machen natürlich fast immer sinn.
 
Mitglied seit
03.08.2002
Beiträge
3.257
Reaktionen
14
Original geschrieben von Wiseguy
Ok, wenn ich mir das so durchlese, dann wäre meine Beantwortung auch nicht lächerlicher gewesen als der Rest hier. :D

Murkst keiner von euch beim "echten" Programmieren mit UML und sonem Zeugs rum?

UML ist so hart zum kotzen

"Was bedeutet nochmal der rot gestrichlte Pfeil, der auf den grünen Kasten mit den abgerundeten Ecken zeigt"

Naja für grössere Projekte vielleicht ganz nett, aber für den Hausgebrauch zum kotzen :)
 
Oben