hkl: GUI-Anwendung - Strukturierung des Programms

Beitrag lesen

Hallo !

;-)

Glaube zu vertehen wie Du's meinst, aber kann man nicht die "Welten" mittels einer Singleton-Fassade voneinander trennen ?

Was ist eine Singleton-Fassade?

Ein Singleton, das eine Fassade realisiert.

DIE koennte man dann so prozedural odr OO-like skalieren wie man's grade braucht.

Was ist OO-like skalieren?

"prozedural odr OO-like skalieren"

1. Prozedurales und/oder OO-Interface schaffen, dabei
2. entscheiden ob sowas wie connect() ein Connection-Objekt liefert oder "nur" eine Ressource verwaltet.

Sowas wie "Fenster", "Rahmen", oder "Document" und "View"  finde ich praedstiniert fuer einen OO-Ansatz;

data grid oder single dataset edit, ja, warum nicht? Wenn Du Lust hast, kannst Du mir Deine Beispiele erklären.

Gamma et al. geben ja sogar einen WYSIWYG-Editor als Fallstudie.

Wer oder was ist "Gamma et al."?

Autoren von Design Patterns; aka "Gang of Four".

Den Bruch zwischen OO und RDBMS kann man doch mittels DAO ( allgemein; nicht das was MS ausliefert ) oder halt einem threadsicheren Single Access Point ( Singleton::getInstance() ) kaschieren, oder ?

Bitte mal unter Nutzung möglichst vieler einfacher deutscher Wörter erläutern.

DAO und "threadsicheren Single Access Point ( Singleton::getInstance() )"
erklaer ich 'mal

Wenn man ein, ggf. hinter einer Singleton-Fassade (s.o.) verstecktes Subsystem fuer den DB-zugriff schafft. erhaelt man durch die getInstance() (Klassen)Metode einen globalen Zugriffspunkt auf dieses Subsystem.

Dieser sollte threadsicher sein; deshalb muessen alle (Klassen-)Methoden die von dem Eexemplar bereitstellt werden auch threadsicher sein.

DAO

  
#include <string>  
  
// abstract  
class DAO  
{  
//[...]  
  public:  
    /* abstract*/ virtual int write_to_db() = 0;  
    /* abstract*/ virtual int read_from_db() = 0;  
//[...]  
};  
  
class Foo : public DAO  
{  
private:  
  unsigned integer m_id;  
  std::string label m_label;  
//[...]  
public:  
  /* virtual */ int write_to_db();  
  /* virtual */ int read_from_db();  
//[...]  
};  

zum Zugriff hierauf :

  
CREATE TABLE foo  
(  
  id UNSIGNED INTEGER NOT NULL AUTO_INCREMENT,  
  label VARCHAR(42),  
  PRIMARY KEY (id)  
);  

Nur von 1:1 Modell/Form ( wie bei MS - Recordset Forms ) ist, denke ich, Abstand zu nehmen.

Ebenfalls bitte erläutern, bei "MS - Recordsets Forms" verstehe ich nicht genau was gemeint ist.

MFC Class Wizard : Mapping von DB-Feldern auf Widgets.

Wenn, dann sollte man SPs OO-klammern, oder ?

Brr. Was soll da genau gemacht werden? (Spielst Du auf die Möglichkeit an unter MS SQL Server 2005 mit VS Studio bspw. T-SQL mit VB-Code zu mischen? Und dabei irgendwie OO vorzugehen?)

Man kapselt nicht (nur) einzelne Tabellen sondern SP's die man zum INSERT verwendet.

Bsp: Neuer Kunde / Neue Rechnung ( in 1 : n Relation )

Kunde anlegen => PK besorgen => Rechung anlegen => per Fk zu KD. zuordnen

Das ganze in einem (DAO-)Objekt.

Gruesse

Holger

P.S.:

VB-Code

"VB-Code" kenn ich nicht. Was ist das ?
VielLeicht "Visual Beginner's All Purpose Symbolic Instruction Code Code" ?
Also die "Allzweckanleitungssprachesprache fuer Menschen die sehen lernen" ?
:-)

P.P.S.:
Karl Lagerfeld, zu einer neuen BOSS-Kollektion befragt:
"Boss ? Boss ?? Hogo Boss ??? Kenn ich nicht - wer ist das ????"

--
Aus dem Perl Styleguide:
"Choose mnemonic identifiers. If you can't remember what mnemonic means, you've got a problem."