Path: csiph.com!feeder.erje.net!1.eu.feeder.erje.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED!not-for-mail From: Patrick Roemer Newsgroups: de.comp.lang.java Subject: =?UTF-8?Q?Re:_Grunds=c3=a4tzliche_Frage_zu_Interfaces?= Date: Fri, 8 Jan 2016 17:15:55 +0100 Organization: news.netcologne.de Lines: 25 Distribution: world Message-ID: References: <8737u9ktmi.fsf@mid.deneb.enyo.de> NNTP-Posting-Host: xdsl-87-78-150-10.netcologne.de Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-Trace: newsreader4.netcologne.de 1452269756 739 87.78.150.10 (8 Jan 2016 16:15:56 GMT) X-Complaints-To: abuse@netcologne.de NNTP-Posting-Date: Fri, 8 Jan 2016 16:15:56 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.24) Gecko/20100411 Thunderbird/2.0.0.24 Mnenhy/0.7.6.0 In-Reply-To: <8737u9ktmi.fsf@mid.deneb.enyo.de> Xref: csiph.com de.comp.lang.java:12899 Responding to Florian Weimer: > * Patrick Roemer: > >> Nehmen wir mal Function in Java 8. Das Interface gab es vorher nicht, >> die Defaultmethoden können also nicht eingebaut worden sein, um >> bestehenden Code nicht kaputtzumachen. Würde man das als reines >> Interface mit drei abstrakten Methodendeklarationen realisieren wollen? >> Ungern, denn die Implementierung von #andThen() und #compose() basierend >> auf #apply() ist wirklich kanonisch - warum sollte jeder Implementor von >> Function den Boilerplate erneut runtertippen sollen? Oder könnte das >> genausogut eine abstrakte Klasse sein? Auch nicht wirklich, denn viele >> Konzepte haben implizite Funktionssemantik, und man wird den "primären >> Vererbungspfad" öfter mal für das eigentliche Konzept brauchen. > > Ich glaube, man wollte eher die automatisch erzeugten Funktionsobjekte > komplett leer haben, ohne Variablen und ohne Konstruktor. Das mag auch durchaus sein. Function war aufgrund seiner Sonderstellung wohl ein etwas ungünstiges Beispiel. Aber wie gesagt, das Muster findet sich auch in anderen Interfaces, wo derartige Überlegungen keine Rolle spielen sollten. Viele Grüße, Patrick