Class vs Function

Alles, was nicht in die anderen Foren gehört.

Moderator: jNizM

BNOLI
Posts: 548
Joined: 23 Mar 2020, 03:55

Class vs Function

Post by BNOLI » 04 Jun 2020, 05:53

Hallo freundiners,
beim üblichen "Meine Frau schaut im TV lieber andere Sachen-parallell im web gecruise" fielen mir zwei Skripte des AHKDev @aviaryan auf:

Function:
https://github.com/aviaryan/autohotkey-scripts/blob/master/Functions/_Ini.ahk (232 Zeilen)
Class:
https://github.com/aviaryan/autohotkey-scripts/blob/master/Functions/AhkIni.ahk (223 Zeilen)

Beides zum Ini-Datei bearbeiten. Einerseits als function, andererseits als class.
Wo liegen denn da jetzt die Unterschiede :arrow: Pro und Contra??

:think:
Remember to use [code]CODE[/code]-tags for your multi-line scripts. Stay safe, stay inside, and remember washing your hands for 20 sec !

just me
Posts: 9763
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Class vs Function

Post by just me » 04 Jun 2020, 08:46

Meine Meinung:

Für mich bringen Klassen gegenüber Funktionen dann einen Vorteil, wenn man damit in nennenswertem Umfang globale Variable und/oder Parameterorgien in den Funktionsköpfen einsparen kann. Außerdem lassen sich damit ohne Verrenkungen sehr leicht mehrere Instanzen mit uterschiedlichen Inhalten erzeugen.

In diesem Fall ist noch eine spezielle Eigenschaft interessant:

Die Funktionen arbeiten direkt auf der INI-Datei, d.h. bei allen Zugriffen wird die 'Platte' angefasst.

Die Klasse liest die INI-Datei bereits beim Erstellen der Instanz ein und arbeitet dann nur noch mit internen Objekten, bis die Save Methode aufgerufen wird.

Das geht wahrscheinlich schneller, wenn oft auf die INI-Datei zugegriffen werden muss, kann aber auch für funktionen nachgebildet werden.

So ist Alles wieder einmal Geschmackssache. Nach meinem Geschmack sind Klassen 'übersichtlicher' als ein Bündel von einzelnen Funktionen.

BNOLI
Posts: 548
Joined: 23 Mar 2020, 03:55

Re: Class vs Function

Post by BNOLI » 04 Jun 2020, 10:51

Danke für die Erklärung :thumbup:
Remember to use [code]CODE[/code]-tags for your multi-line scripts. Stay safe, stay inside, and remember washing your hands for 20 sec !

Post Reply

Return to “Allgemeines”