快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

访问控制 : 语言和平台


程序逻辑上的组织方法(如名称空间,包等)可以和部署时的分发方法(如程序集,jar包等)不同,那么不同class间的相互访问权限应该在逻辑组织上限制还是物理分发上限制呢?

Java

语言本身

采用了对逻辑组织方法进行限制,即你可以访问java.lang中的私有类而能够通过编译,只要你自己的代码也以java.lang为包名[我猜的,没试过]

运行时

采用了对物理分发方法进行限制,可能跟缺省的ClassLoader有关,即使你通过编译了,但部署时同一包名下的类分成了不同的jar包,那么对私有类的访问可能会出错[我猜的,没试过]

.Net

CLS

不知道,希望补充

C#

对物理分发方法即程序集进行限制,从语言到运行时都是如此

个人倾向于C#的权限控制,合理且灵活;Java中当逻辑和物理组织不同时,不是被迫把一个class别扭的挪到当前package,就是把它声明为public,而一旦声明为public,你就再也控制不了了

传统的访问控制已超出了语言本身的范围,属于平台特性了




返回类别: 教程
上一教程: 用Java编写的密码算法类
下一教程: 基于 J2EE 的企业应用系统 - 工具一览表

您可以阅读与"访问控制 : 语言和平台"相关的教程:
· 编写自己的登录与访问控制模块
· Java入门笔记4_访问控制和包
· 用定制标签库和配置文件实现对JSP页面元素的访问控制
· 基于APACHE 配置文件的WEB页面访问权限控制
· Java语言语法-控制结构
    微笑服务 优质保证 索取样品