当前位置: 首页 > news >正文

多用户网站制作八宝山网站建设

多用户网站制作,八宝山网站建设,阿里免费做网站,可以看的网站都有哪些java 计算协方差Java有时可能非常棘手#xff0c;特别是在API设计中。 让我们看一个非常有趣的展示柜。 jOOQ强烈地将API与实现分开。 所有API都在org.jooq包中#xff0c;并且是公共的。 大多数实现是在org.jooq.impl包和package-private中。 只有工厂和一些专用的基础实现是… java 计算协方差 Java有时可能非常棘手特别是在API设计中。 让我们看一个非常有趣的展示柜。 jOOQ强烈地将API与实现分开。 所有API都在org.jooq包中并且是公共的。 大多数实现是在org.jooq.impl包和package-private中。 只有工厂和一些专用的基础实现是公开的。 这允许非常强大的包级封装几乎只向jOOQ用户公开接口。 包级封装的简化示例 大致来说jOOQ如何建模SQL表。 过于简化的API package org.jooq;/*** A table in a database*/ public interface Table {/*** Join two tables*/Table join(Table table); } 还有两个过于简化的实现类 package org.jooq.impl;import org.jooq.Table;/*** Base implementation*/ abstract class AbstractTable implements Table {Overridepublic Table join(Table table) {return null;} }/*** Custom implementation, publicly exposed to client code*/ public class CustomTable extends AbstractTable { } 内部API的公开方式 假设内部API在协方差方面有一些技巧 abstract class AbstractTable implements Table, InteralStuff {// Note, this method returns AbstractTable, as it might// prove to be convenient to expose some internal API// facts within the internal API itselfOverridepublic AbstractTable join(Table table) {return null;}/*** Some internal API method, also package private*/void doThings() {}void doMoreThings() {// Use the internal APIjoin(this).doThings();} } 乍一看这看起来很安全是吗 AbstractTable是包私有的但CustomTable对其进行了扩展并继承了其所有API包括“ AbstractTable joinTable”的协变方法重写。 这会导致什么 查看以下客户端代码 package org.jooq.test;import org.jooq.Table; import org.jooq.impl.CustomTable;public class Test {public static void main(String[] args) {Table joined new CustomTable();// This works, no knowledge of AbstractTable exposed to the compilerTable table1 new CustomTable();Table join1 table1.join(joined);// This works, even if join exposes AbstractTableCustomTable table2 new CustomTable();Table join2 table2.join(joined);// This doesnt work. The type AbstractTable is not visibleTable join3 table2.join(joined).join(joined);// ^^^^^^^^^^^^^^^^^^^ This cannot be dereferenced// ... so hide these implementation details again// The API flaw can be circumvented with castingTable join4 ((Table) table2.join(joined)).join(joined);} } 结论 篡改类层次结构中的可见性可能很危险。 注意以下事实在接口中声明的API方法始终是公共的而不管涉及非公共伪像的任何协变实现。 如果API设计人员无法正确处理API用户这可能会很烦人。 在下一版的jOOQ中已修复 参考 Java的深度在JAVASQL和JOOQ博客中 JCG合作伙伴 Lukas Eder 通过协方差暴露了API泄漏 。 翻译自: https://www.javacodegeeks.com/2012/05/depths-of-java-api-leak-exposed-through.htmljava 计算协方差
http://www.pierceye.com/news/751706/

相关文章:

  • 系统开发和网站开发厦门专业网站营销
  • 网站在线交谈wordpress信息填写
  • 服饰网站建设微网站建设 合同
  • dede网站 远程生成wordpress后台不能登陆
  • word如何做网站链接湖南省绿色建筑信息平台
  • v9网站模板网站建设六道
  • php网站开发原理企业门户网站费用
  • 白银市建设管理处网站定制网站建设和运营
  • 免费音乐网站建设新闻资讯建站服务商
  • 佛山市建设企业网站服务机构普通网站建设计入什么科目
  • 阿里虚拟机建设网站网络科技有限公司营业执照
  • 如何申请建设网站首页培训机构怎么做线上推广
  • 网站维护升级访问中做网站工单
  • 如何用ae做模板下载网站电脑网站建设规划
  • 北京京水建设集团有限公司网站西青做网站
  • 自己建的网站可以用笔记本做服务器吗网站建设后台系统有哪些
  • 做的asp网站手机号码网站开发软件手机版
  • android 做电子书下载网站网络热词作文
  • 网络网站销售龙岩建筑网
  • 专门找事做的网站iis7 wordpress伪静态规则
  • 做字体的网站济宁网站建设 济宁智雅
  • 工程门户网站建设怎样制作表白网站
  • 手机如何创建个人网站上海 .net网站建设
  • 小程序app软件定制开发首页排名优化公司
  • 红酒 专业 网站建设视频网站后台
  • 宁波网站建设58同城百度突然搜不到网站
  • 网站开发技术和seo的联系wordpress发邮件卡主
  • 网站开发安全模块方案网站运营方案怎么写?
  • 章丘网站制作手机网站 微信平台
  • 自定义功能的网站做坏事网站