Path: csiph.com!feeder.erje.net!1.eu.feeder.erje.net!news.szaf.org!news.enyo.de!.POSTED!not-for-mail From: Florian Weimer Newsgroups: de.comp.lang.java Subject: Re: =?iso-8859-1?Q?Grunds=E4tzliche?= Frage zu Interfaces Date: Thu, 07 Jan 2016 21:43:49 +0100 Lines: 15 Message-ID: <8737u9ktmi.fsf@mid.deneb.enyo.de> References: Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: news.enyo.de 1452199429 32298 192.168.18.20 (7 Jan 2016 20:43:49 GMT) X-Complaints-To: news@enyo.de Cancel-Lock: sha1:OGhXjl4xSO3y2LIvwY6UrxXYmjM= Xref: csiph.com de.comp.lang.java:12897 * 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.