AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi ClassFactory ähnlich wie Spring Framework, Hilfe gesucht!
Thema durchsuchen
Ansicht
Themen-Optionen

ClassFactory ähnlich wie Spring Framework, Hilfe gesucht!

Ein Thema von Mavarik · begonnen am 6. Feb 2014 · letzter Beitrag vom 9. Feb 2014
Antwort Antwort
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: ClassFactory ähnlich wie Spring Framework, Hilfe gesucht!

  Alt 6. Feb 2014, 14:16
Leider geht das so nicht. Deshalb gibt es in Spring4d auch relativ komplexe Logik, um den "best matching" Konstruktor zu finden.
Dein Einwand bezieht sich aber "nur" auf Konstruktoren die Parameter haben, oder?

Der Einfache TFoo.Create; macht doch keine Probleme...

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: ClassFactory ähnlich wie Spring Framework, Hilfe gesucht!

  Alt 6. Feb 2014, 14:30
Leider geht das so nicht. Deshalb gibt es in Spring4d auch relativ komplexe Logik, um den "best matching" Konstruktor zu finden.
Dein Einwand bezieht sich aber "nur" auf Konstruktoren die Parameter haben, oder?

Der Einfache TFoo.Create; macht doch keine Probleme...

Mavarik
Ja, aber da du im Eingangspost erwähnt hast, dass es für TForm ginge, hab ich das geschrieben. Denn obwohl der Source kompiliert und auch TForm.Create aufgerufen wird (was ja nicht gehen dürfte, denn der ist durch den TComponent Konstruktor nunmal verdeckt), wird das Form ziemlich vor die Wand semmeln, da alles, was so in den Konstruktoren ab TComponent gemacht wird, nicht ausgeführt wird.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: ClassFactory ähnlich wie Spring Framework, Hilfe gesucht!

  Alt 6. Feb 2014, 14:35
Ja, aber da du im Eingangspost erwähnt hast, dass es für TForm ginge,
Nein! Geht mir um normale Klassen für TForms habe ich schon ein Formfactory programmiert.

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

AW: ClassFactory ähnlich wie Spring Framework, Hilfe gesucht!

  Alt 6. Feb 2014, 15:01
Noch'n Tip: Lagere das Register in eine extra Unit aus und mach das nicht im initialization Part der Unit mit der Klasse.
Dadurch erreichst du nämlich keineswegs eine Entkopplung sondern nur 1. Untestbarkeit deiner Klasse (dadurch, dass sie im Implementation Teil deiner Unit versteckt ist) und 2. indirekte Kopplung deiner Klasse auf den Container (dadurch, dass die Container Unit im Uses deiner Klassen Unit steht).
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: ClassFactory ähnlich wie Spring Framework, Hilfe gesucht!

  Alt 6. Feb 2014, 18:13
Noch'n Tip: Lagere das Register in eine extra Unit aus und mach das nicht im initialization Part der Unit mit der Klasse.
Dadurch erreichst du nämlich keineswegs eine Entkopplung sondern nur 1. Untestbarkeit deiner Klasse (dadurch, dass sie im Implementation Teil deiner Unit versteckt ist) und 2. indirekte Kopplung deiner Klasse auf den Container (dadurch, dass die Container Unit im Uses deiner Klassen Unit steht).
Sehe ich anders. Im InitPart ist es schön! Da ja auch die Klasse in der Unit definiert ist. Die Referenz zum Container stört mich nicht. Wie soll ich den das in einer anderen Unit machen? Aus einer anderen Unit komme ich doch nicht an die Klasse ran!

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: ClassFactory ähnlich wie Spring Framework, Hilfe gesucht!

  Alt 6. Feb 2014, 18:56
Stevie hat aber Recht mit der Entkopplung. Das hatten wir gestern schon mal. Genau wie Supports
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: ClassFactory ähnlich wie Spring Framework, Hilfe gesucht!

  Alt 6. Feb 2014, 19:01
Wie soll ich den das in einer anderen Unit machen? Aus einer anderen Unit komme ich doch nicht an die Klasse ran!
Ganz einfach!

Delphi-Quellcode:
unit MyInterfaces;

interface

const
  SID_Sample : string = '{13B2116B-B78B-4E89-8070-83F9E36720EF}';
  SID_OtherSample : string = '{74EF1A68-1EED-4DA4-9845-5F77AEB6D2DA}';

type
  ISample = interface(IUnknown)
  [SID_Sample]
    procedure Foo;
    function Bar : Boolean;
  end;

  IOtherSample = interface(IUnknown)
  [SID_OtherSample]
    procedure FooFoo;
    function BarHocker : Boolean;
  end;

implementation

end.
Den Spaß werden wir hier implementieren:
Delphi-Quellcode:
unit MyClasses;

interface

uses
  MyInterfaces;

type
  TMySampleClass = class(TInterfacedObject, ISample)
  private
    function Bar: Boolean;
    procedure Foo;
  end;

  TMyOtherSampleClass = class(TMySampleClass, IOtherSample)
  private
    function BarHocker: Boolean;
    procedure FooFoo;
  end;

implementation

{blablabla - Methoden über Methoden}

end.
Die Unit Container ist ja jedem hier bekannt; so melden wir alle schön an:
Delphi-Quellcode:
unit RegisterMyClasses;

interface

implementation

uses
  Container, MyInterfaces, MyClasses;

initialization
  Container.GlobalContainer.RegisterClass<ISample, TMySampleClass>;
  Container.GlobalContainer.RegisterClass<IOtherSample, TMyOtherSampleClass>;

end.
Tataaaa!
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: ClassFactory ähnlich wie Spring Framework, Hilfe gesucht!

  Alt 6. Feb 2014, 19:17
Wie war noch das Design-Pattern!

Niemals Klassendefinitionen im Interface Teil. Sonst Referenziert man noch dagegen?

Mavarik
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz