没太明白老师你说的IntStream的of方法
来源:2-5 Java8 StreamT接口:流和管道是基础用法?

hellocp7
2021-03-03
就是你说这个用到了抽象工厂方法,能具体讲一下么?还有具体的static和default的区别,default动态的好处是什么?
还是说这里只是提一下后面你会在说?
写回答
1回答
-
求老仙
2021-03-03
hello, 这个后面确实有细讲。 不过这里我先回复你的疑问。
static是静态方法,和Class的静态方法类似,接口允许静态方法大大简化了设计的难度,比如很多静态方法就不必非要挂靠Class。比如Stream.of, of是一个interface Stream定义的静态工厂方法,这个方法放在interface Stream是最佳选择,不然还得找一个工厂类。 Stream.of写起来很方便。
default是动态方法,实现接口的类,也可以使用default方法。这种设计简化了多继承。接口和抽象类很像,抽闲类的抽象方法可能调用其他抽象方法。比如Stream.takeWhile方法,这个default方法就定义在了Stream interface中,这样所有实现interafce Stream的Class都会拥有这个方法。
之所以非常需要default,是因为问题的重点在于接口的设计是一种组合~关系,耦合很低;多继承抽象类是的关系耦合较重。 如果,interface Stream不提供default方法,那么就需要实现为抽象类abstract class Stream,那是不是还需要一个IStream的接口呢?
032021-03-03
相似问题