Es scheint, dass, während ich mich bemühe, OO Prinzipien beizubehalten, alles so künstlich oder unnatürlich scheint.Kann eine Webanwendung wirklich objektorientiert sein?
Antwort
Wenn Sie Objekte als Konstrukte zum Festhalten von Zustandsinformationen betrachten, wird die Definition von "objektorientiert" durch die zustandslose Natur von Webanforderungen belastet. Statuslose Objekte sind jedoch immer noch Objekte, und Webanwendungen können in diesem Kontext OO-Designprinzipien folgen.
ja, das ist was ich meinte. – zsharp
Mein Rat ist, nicht zu dogmatisch über OO Prinzipien zu werden. Sie funktionieren gut, aber manchmal, wenn Leute sagen, dass sie sich bemühen, OO-Prinzipien beizubehalten, kann es bedeuten, dass sie eine Klasse für alles schaffen, selbst wenn es nicht wirklich angemessen ist. Die Dinge werden auch weniger unnatürlich, wenn man sich an sie gewöhnt, wie "x = 3" ist natürlich für eine Aufgabe, obwohl jemand mit einem mathematischen Hintergrund es für unnatürlich halten würde.
Sie können auch einen Blick auf bestehende OO Web Apps und Design Patterns werfen. Ein übliches OO-Entwurfsmuster ist das MVC-Muster, das von Ruby on Rails und Django unterstützt (fast erzwungen) wird. Suchen Sie nach MVC.
die ursprüngliche OO-MVC macht nur Sinn für GUIs, die häufiger Web-MVC ist mehr Schichten als OO. – Javier
Javier, können Sie diesen Punkt in Bezug auf die Schichtung näher ausführen? – zsharp
die GUI-MVC (beliebt bei SmallTalk) war modular und OOP; Jedes Modul hatte drei Objekte, die mehr oder weniger eng miteinander verbunden waren und bei Bedarf ein einzelnes Modul bildeten. Web-MVC, OTOH, besteht aus drei Ebenen, nicht Objekten, die jeweils einen Aspekt abstrahieren, um einen höheren Zugriff auf einen Teil (Speicher-, Präsentations- und Kontrollfluss) zu ermöglichen. Sie sind nicht in einem größeren Subsystem enthalten und stellen kein visuelles Element dar. Zusammen verwalten sie eine ganze App (oder Subapp). ganz andere Dinge, vielleicht nur auf einer philosophischen Ebene, nicht auf einer Design-Ebene. – Javier
- 1. Kann PropertyInfo.DeclaringType wirklich nie null sein?
- 2. Reactjs - Objektorientiert?
- 3. Wird window.navigator.userAgent wirklich veraltet sein?
- 4. Ist MongoDB objektorientiert?
- 5. Kann Go wirklich so viel schneller sein als Python?
- 6. Sollte die Anzahl gleichzeitiger Sitzungen für eine Webanwendung begrenzt sein?
- 7. ist SmartGWT wirklich so langsam wie sein Schaufenster ist?
- 8. Kann eine Klasse selbstbezogen sein?
- 9. Kann eine DateTime null sein?
- 10. Kann eine Funktion eine gelöschte Funktion sein?
- 11. Kann eine Webanwendung eine Aktion über Bluetooth ausführen?
- 12. Ruby - Machen Sie meinen Code objektorientiert
- 13. Ist das wirklich eine Vereinfachung?
- 14. Wie wird eine Webanwendung an eine andere Webanwendung weitergeleitet?
- 15. Wechsel von objektorientiert zu prozeduralen in PHP
- 16. Warum ist Python nicht vollständig objektorientiert?
- 17. Wie erstellt man ein DOM-Element objektorientiert?
- 18. Morfik ist wirklich eine gute Wahl für meine nächste Webanwendung [bitte beraten]
- 19. Sicherung WIFI für eine Webanwendung
- 20. Braucht SPI wirklich eine Warteschleife?
- 21. Ist IMFSampleGrabberSinkCallback wirklich eine Senke?
- 22. Wie kann (1 +) jemals eine Funktion sein?
- 23. Wie kann eine Threadspeicherbelegung bekannt sein?
- 24. selectionArgs in ContentResolver.query (...) kann eine Unterabfrage sein?
- 25. Kann sqlite auch eine Inmemory-Datenbank sein?
- 26. Kann ein offener Typ eine Struktur sein?
- 27. Pandas Data Reader-Funktion für Google Finanzen kann wirklich langsam sein
- 28. Kann Metaklasse aufrufbar sein?
- 29. Verbindungszeichenfolge für eine L2E-Webanwendung
- 30. Eine PHP-Sitzung wirklich zerstören?
Aufwendig bitte. – DevinB
Oder, noch besser, stellen Sie eine aktuelle Frage. – cgp
Ich merke, dass mein Kommentar eigentlich ziemlich vage war (oh Ironie). Könntest du bitte erläutern, in welchem Sinn dein OO-Code künstlich oder unnatürlich wirkt? Welche Designmuster versuchen Sie zu verwenden und wie versagen sie Ihnen? – DevinB