Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PHP-Programmierung > Anwendungsgebiet für innere Klassen

Layoutprobleme? - Styleswitcher!

Antwort
 
Themen-Optionen
Alt 12.04.2008, 14:05 Nach oben    #1
Spacerat
Neuer Benutzer
 
Registriert seit: 12.04.2008
Beiträge: 2
Standard Anwendungsgebiet für innere Klassen

Mit inneren Klassen habe ich in Java bisher die jeweils äusseren Klassen autorisiert, als einzige auf Methoden anderer Klassen zuzugreifen, wo durch die Implementierung der anderen Klasse nur der Modifier "public" für die Methode zugelassen ist, jedoch nicht jeder darauf "zugeifen" soll.
z.B.:
Code:
public class Manager
{
  private static final Authority AUTH = new Authority();
  private static Manager instance = null;

  private Manager()
  {
    //etwas Code...
  }

  public static Manager instance()
  {
    if(instance == null) instance = new Manager();
    return instance;
  }

  public static class Authority
  {
    private Autority()
    {
    }
  }

  public boolean addEntry(Entry e)
  {
    //Datenbankeintrag erstellen <- int id = "Insert-ID"
    return e.setID(id, new Authority());
  }
}

public class ManagerEntry
implements Entry
{
  private int ID;
  public ManagerEntry()
  {
    //etwas Code...
  }

  public boolean setID(int id, Authority auth)
  {
    if(auth != null) this.ID = id;
    return auth != null;
  }
}

public interface Entry
{
  setID(int id, Authority auth);
}
In PHP funktioniert das irgendwie nicht, zumindest weis ich nicht, wie ich so etwas hinbekomme. Na ja... PHP programmiere ich eh' nur wenn ich muss, wodurch ich dort nicht unbedingt einsclägige Erfahrungen habe, aber eine Lösung dafür interessiert mich nun doch.

cu Spacerat

Geändert von Spacerat (12.04.2008 um 14:07 Uhr). Grund: Gramatikfehler
Spacerat ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.04.2008, 17:13 Nach oben    #2
Jann Hendrik
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 1.542
Standard

Ich habe diesen post von dem thread Subclasses in PHP - sinnvoll? abgespalten.
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

die aktuelle Umfrage: Wo kauft ihr eure Literatur?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.04.2008, 17:39 Nach oben    #3
mepeisen
Martin Eisengardt
 
Registriert seit: 30.03.2006
Ort: Pfinztal
Beiträge: 353
Standard

Zitat:
Zitat von Spacerat Beitrag anzeigen
zumindest weis ich nicht, wie ich so etwas hinbekomme. Na ja...
Kurz Antwort: Bis einschliesslich PHP 5 gar nicht.
__________________
Open Sourcing the Online Gaming Universe
PHP/SQL/Java/C++/Assembler.
Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html
mepeisen ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.04.2008, 19:06 Nach oben    #4
Spacerat
Neuer Benutzer
 
Registriert seit: 12.04.2008
Beiträge: 2
Standard

Zitat:
Zitat von mepeisen Beitrag anzeigen
Kurz Antwort: Bis einschliesslich PHP 5 gar nicht.
Dann wäre das Thema im ursprünglichen Thread (Subclasses in PHP sinvoll oder nicht?) wohl eindeutig geklärt.
Aber mal was anderes:
Nun habe ich eben jenes Problem in PHP (das öffentliche Methoden nur von auserwählten Klassen aufgerufen werden sollen) wie oben beschrieben. Gibt es in PHP wenigstens irgend etwas, womit man das (auch ohne Subclasses) hinbekommt?
cu Spacerat
Spacerat ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.04.2008, 21:42 Nach oben    #5
mepeisen
Martin Eisengardt
 
Registriert seit: 30.03.2006
Ort: Pfinztal
Beiträge: 353
Standard

Das sprich ja nicht gegen innere Klassen, was dort in dem Thema genannt wird. Der Artikel ist Humbug ganz einfach weil alle Argumente für innere Klassen weggelassen wurden.

Ohne Zusatzklassen. Hmm. Der einzige Weg, der mir in PHP einfallen würde, wäre, herauszufinden, wer einen aufruft. Beispielweise via debug_backtrace. Gehen tut das gut, also den Aufrufen anschauen und schauen, ob es eine vertraute Klasse ist. Das sollte man aber nur an wirklich ausgewählten und sehr kritischen Stellen machen, denn es ist logischerweise nicht gerade der Performance zuträglich.

ungetestet:
Code:
function get_caller_class()
{
    $arr = debug_backtrace();
    // Array-Position 1, da die Position 0 den Aufruf con Secure::secured() enthält.
    // Die erste Array-Position hingegen enthält deren Aufrufer.
    return array_key_exists('class', $arr[1]) ? $arr[1]['class'] : false;
}

class Secure
{
    public static function secured()
    {
        if (get_caller_class() !== 'SecuredCaller')
        {
            throw new Exception('Security leak!!!');
        }
        // .... hier der gesicherte Code
    }
}

function unsecure()
{
    Secure::secured(); // Hier wird die Exception geworfen, da der Aufruf nicht aus Klasse 'SecuredCaller' erfolgte...
}
__________________
Open Sourcing the Online Gaming Universe
PHP/SQL/Java/C++/Assembler.
Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html

Geändert von mepeisen (12.04.2008 um 21:48 Uhr).
mepeisen ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

« 2 Sorten von Screenshots schießen und Daten aus der Datenbank holen | Platzhalter parsen »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

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 anzufügen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Subclasses in PHP - sinnvoll? Ben PHP-Programmierung 8 14.08.2006 06:45
alle Klassen eines Packages ermitteln ehli75 Allgemeine Java-Programmierung 3 16.12.2005 14:30
PropertyChangeEvent etc. auch für Klassen, die keine Beans sind? NewYork Allgemeine Java-Programmierung 2 23.11.2005 01:07
Performanceeinbusen beim Laden von Klassen? Gottzilla Allgemeine Java-Programmierung 4 15.08.2005 02:08
MVC Programmierung nur mit Klassen mit UI Endung? Java17 Desktop-Applikationen und Grafik 5 14.03.2005 18:12


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:44 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.6.7, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44