隐藏实现细节Encapsulation或Abstraction?
抽象就是提供一个带有接口和抽象类的附加层.这个层(接口和抽象类)告诉我们需要做什么,而不是如何做.因此隐藏实现称为抽象.
理解抽象概念的最好例子是所有J2EE/JMS规范都为interfaces应用程序供应商提供了抽象(通常),然后这些接口将由不同的供应商实现(如Tomcat/JBoss/Weblogic/IBM/etc ......).与规范的实际定义/行为(称为实现).
抽象只讨论需要做什么,实现讲述了应该如何完成.
抽象提供了在运行时注入行为的能力(这是多态性).现在,以Spring框架(或实际任何DI框架,如Guice等)为例,Spring DI容器在运行时将提供的bean(通过xml或annotations)实现对象 (实现) 注入给定的接口类型(抽象) ).
那么这意味着对象接口暴露是抽象而隐藏在对象内部的数据是封装吗?
是的,几乎在Java抽象中可以使用interfaces或有时使用Abstract classes(如J2EE HttpServlet等)来实现.
现在进入Encapsulation,它是关于为类/方法/字段提供/定义正确的访问级别(隐藏/保护类和类成员).在Java中,可以使用访问修饰符(protected/ private/ public/ etc ..)实现封装.
您可以在此处查看有关Java中抽象的更多信息,以及此处用于覆盖(实现)和隐藏方法.
| 归档时间: |
|
| 查看次数: |
1848 次 |
| 最近记录: |