Java 实现类的两种方法
当我想要实现一个类时,我不知道两种类型的使用之间有什么真正的区别:(我运行并看到它们是相同的结果) 第一个示例:将Java 实现类的两种方法,java,class,implements,Java,Class,Implements,当我想要实现一个类时,我不知道两种类型的使用之间有什么真正的区别:(我运行并看到它们是相同的结果) 第一个示例:将渲染器直接实现到类 第二个示例:创建一个子类并使该类实现Renderer 我在网上阅读文件/电子书时经常遇到的第二个问题。也许解决方案2还有一些我不知道的好处 GLSurfaceView glView; public class TriangleOpenGLTest implements Renderer{ public void onCreate(Bundle save
渲染器直接实现到类
第二个示例:创建一个子类并使该类实现Renderer
我在网上阅读文件/电子书时经常遇到的第二个问题。也许解决方案2还有一些我不知道的好处
GLSurfaceView glView;
public class TriangleOpenGLTest implements Renderer{
public void onCreate(Bundle savedInstanceState){
glView = new GLSurfaceView(this);
glView.setRenderer(this); //this line
}
}
以及:
请教我
谢谢:)这两种方法都不错,但我更喜欢第二种方法。为什么?
我认为这更清楚。这样,您就可以清楚地将渲染器接口的特定业务代码与TrianglePongltest的其他业务代码分开
很容易区分什么是特定于TriangeloPenglTest的,什么是特定于渲染实现的。这两种方法都很好,但我更喜欢第二种方法。为什么?
我认为这更清楚。这样,您就可以清楚地将渲染器接口的特定业务代码与TrianglePongltest的其他业务代码分开
很容易区分什么是特定于TriangeloPenglTest的,什么是特定于呈现的实现的。您应该努力实现高内聚性-一个类应该完成一项工作(或多或少)
如果一个类实现了一个接口,那么该接口就是该类API的一部分(例如,它在其Javadoc中显示该类实现了该接口)。因此,您应该问问自己,例如,该类是否真的是一个渲染器,并打算在任何可以使用渲染器的地方使用?或者它只是一个实现细节
如果只是一个实现细节,那么最好使用另一个类(例如,本地内部类或甚至匿名类),而不是在API中泄漏接口。您应该努力实现高内聚性-一个类应该完成一项工作(或多或少)
如果一个类实现了一个接口,那么该接口就是该类API的一部分(例如,它在其Javadoc中显示该类实现了该接口)。因此,您应该问问自己,例如,该类是否真的是一个渲染器,并打算在任何可以使用渲染器的地方使用?或者它只是一个实现细节
如果只是一个实现细节,那么最好使用另一个类(例如,本地内部类或甚至匿名类),而不是在API中泄漏接口。注意:在第二个示例中,TrianglePongltest不必实现渲染器。术语是“实现”(通常在接口的情况下)或“覆盖”(通常在基类的情况下),而不是“重载”,这是另一个概念。我很抱歉。我的意思是覆盖。谢谢:)注意:在第二个示例中,TrianglePongltest不必实现渲染器。术语是“实现”(通常在接口的情况下)或“覆盖”(通常在基类的情况下),而不是“重载”,这是另一个概念。我很抱歉。我的意思是覆盖。谢谢:)
GLSurfaceView glView;
public class TriangleOpenGLTest implements Renderer{
public void onCreate(Bundle savedInstanceState){
glView = new GLSurfaceView(this);
glView.setRenderer(new Render() ); //And this line
}
class Render() implements Renderer{
//Override function here
}