AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Versteckte Klasse entwickeln.

Ein Thema von Christian18 · begonnen am 20. Jul 2009 · letzter Beitrag vom 26. Jul 2009
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#11

Re: Versteckte Klasse entwickeln.

  Alt 20. Jul 2009, 17:40
Zitat von Meflin:
Und wozu soll das gut sein? Damit trittst du die Hälfte von dem, wozu OOP gut ist, in die Tonne, weil man die abgeleiteten Objekte eben NICHT pauschal behandeln könnte.
Naja generell ist das soooo unsinnig nicht ( Information Hiding). Wenn es nur eine kleine Hilfsklasse für eine größere Klasse ist..
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#12

Re: Versteckte Klasse entwickeln.

  Alt 20. Jul 2009, 17:42
Zitat von Neutral General:
Naja generell ist das soooo unsinnig nicht ( Information Hiding). Wenn es nur eine kleine Hilfsklasse für eine größere Klasse ist..
Ist bei dem Beispiel, worum es ja konkret geht (Körper, Würfel, Quader) definitiv nicht der Fall. Das tolle daran ist ja nun gerade, dass man für gewisse Dinge nicht iwssen muss, obs nun ein Würfel oder Quader ist. So wie er das implementieren will aber eben schon.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#13

Re: Versteckte Klasse entwickeln.

  Alt 20. Jul 2009, 23:28
Oh ja.. das hatte ich überlesen...

Das kommt davon wenn man nur den ersten Satz liest

Das ist dann natürlich nicht im Sinne von OOP..
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#14

Re: Versteckte Klasse entwickeln.

  Alt 21. Jul 2009, 08:31
Zitat von Christian18:
gibt es in Delphi die Möglichkeit eine ganze Klasse zu verbergen? Ich habe davon gehört, dass man einzelne Methoden verbergen kann.
Leider kennt Delphi keine Attribute für Klassen (in VB.NET oder C# kann man Klassen als "private" markieren).

Die beste Entsprechnung dazu in Delphi wäre eine Klasse die im "implementation" Teil der Unit deklariert wird. Diese kann dann nur innerhalb dieser Unit benutzt werden. Wenn man selbst davon andere Klassen ableiten will gibt es allerdings Probleme. Verwendet man eine Forward-Deklaration wie hier:

Delphi-Quellcode:

uses
  classes, [.....];

type
  TDefault = class;
  TDefaultAbgeleitet = class(TDefault)
    procedure Test; override; // hier Compiler Fehlermeldung!!
  end;

implementation

type
  TDefault = class(TObject)
    procedure Test; virtual;
  end;

end.
Dann erhält man vom Compiler die Meldung, dass die Klasse TDefault noch nicht vollständig implementiert sei.

Ein "verstecken" von Klassen im implementation-Teil ist also nur dann machbar wenn man die Klasse nicht selbst erweitern will. (dazu müsste man im Beispiel die Forward-Deklaration weglassen und könnte keine "TDefaultAbgeleitet" deklarieren) Immerhin könnte man so lokale Klassen mit Hilfsroutinen erzeugen die ausserhalb der Unit nicht sichtbar sind.

Ciao,
Ralf
Ralf Kaiser
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.183 Beiträge
 
Delphi 12 Athens
 
#15

Re: Versteckte Klasse entwickeln.

  Alt 21. Jul 2009, 08:43
Forward-Deklarationen müssen innerhalb eines zusammenhängendem Type-Blocks liegen.

also es darf zwischen den Forward-/Typen-Deklarationen nichts außer Typen sein
> keine Konstanten, Proceduren und auch kein Bereichswechsel ala implementation
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#16

Re: Versteckte Klasse entwickeln.

  Alt 21. Jul 2009, 08:56
In Delphi Prism geht das. Dort kann man eine Klasse als internal deklarieren und dann nur innerhalb dieses Assemblies verwenden.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: Versteckte Klasse entwickeln.

  Alt 21. Jul 2009, 09:47
Wenn du diese im Implementation Teil deklarierst, ist sie auch nur innerhalb der Unit sichtbar
Markus Kinzler
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#18

Re: Versteckte Klasse entwickeln.

  Alt 26. Jul 2009, 18:36
Was spricht dagegen, die Klasse in einer extra Unit zu deklarieren und diese einzubinden, nach außen dürfte diese dann, nicht sichtbar sein?
Man kann einen Barbier definieren als einen, der alle diejenigen rasiert, und nur diejenigen, die sich nicht selbst rasieren.
Rasiert sich der Barbier?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 01:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz