Private interface methods

Nicolai Parlog nipa at codefx.org
Fri Aug 19 15:37:16 UTC 2016


 Hi!

I was very surprised how the syntax for private interface method
turned out. (I want to apologize in advance if this has been discussed
before. I searched but didn't find anything. And I know it's a bike
shed - still...)

I was going into a long explanation of what I thought were the reasons
behind defining the syntax at it currently stands and that they were
all very understandable. Then I would explain why I think the current
design is still awkward. I soon realized that most people on the list
will have had those thought long before me.

So I cut them out and come straight to the point: The way the two
axes[1] public / private and abstract / has-impl turned out is pretty
erratic:

interface FooBar {

//	public foo();
//	public has-impl bar() { ... }
//	private has-impl foobar() { ... }

	foo();
	default foo() { ... }
	private foobar() { ... }

}

If private abstract methods were ever added (Does this even make
sense? Would be nice to have a private channel between interface and
implementation.) the confusion would be complete.

Now, if `default` were optional as well... :)

 so long ... Nicolai


[1] https://thumbs.dreamstime.com/x/two-axes-15577060.jpg



-- 

PGP Key:
    http://keys.gnupg.net/pks/lookup?op=vindex&search=0xCA3BAD2E9CCCD509

Web:
    http://codefx.org
        a blog about software development
    http://do-foss.de
        Free and Open Source Software for the City of Dortmund

Twitter:
    https://twitter.com/nipafx



More information about the core-libs-dev mailing list