ACE封装——增强类型安全性

原创 2007年09月29日 11:42:00

从第一篇开始我就在讨论ace的封装,不同场合使用的同一物件封装成不同类型是提的比较多的一点。这集中提现在socket上,一个socket可以是监听连接的,可以是已经连接用以发送数据的,如果你还愿意划分,它还可以是连往其他位置的状态,这就会引发错误使用,譬如在接受连接的socket上发送数据或者用一个正在发送数据的socket连接远端,为了一次性的解决掉这个问题,ACE使用了增强类型安全性这个法则。

不同场合的同一东西被封装成不同的类型,这样错误的使用会被编译器直接指出,不会引发运行阶段的错误。

这个法则也适合强转指针的时候,sockaddr是一个多数时候需要强转的东西,而且有些时候这个强转总被忽略导致编译器抱怨,即使显式强转了,内部的东西也有可能是不正确的,为了解决这个问题,ace还是使用了类型安全的封装策略,保证sockaddr必须被正确使用。

高封装性带来了高安全性,但是也给某些特定的使用者带来麻烦,我就经常碰到这样一个问题,在高度封装的mfc中无从找到某个特定winapi的对应封装,如果一个开发者非常熟悉某个基本类型,而封装让他无法访问,这将给他带来很大的苦恼,如果一个函数必须接受一个底层的东西,那无法获取将使wrapper facade带来灾难,你可以把一个类型封装成高级的东西,但是你必须多考虑有些低级东西需要同一级别低级东西时你需要高级向低级转换问题,这是ace增强类型安全性的使用令一个原则,运行一定程度上破坏封装,直接获取数据。但是这就如强转一样,你直接获取了数据,再出问题就是你的事情了,白纸黑字,你获取过不容修改。当你决定这么做的时候,保证你的使用是正确的。

一个有效的经验是,虽然你可以获取,但是少使用,短时间使用会给你很多隐式的好处。 

ISP模块之彩色图像增强--ACE算法

ACE(Automatic Color Enhancement),自动色彩增强算法,是一种对于彩色图像增强十分行之有效的方法。它的改进算法以及快速实现在文章Automatic Color Enhanc...
  • u013626386
  • u013626386
  • 2015年08月20日 15:40
  • 2041

自动色彩均衡(ACE)快速算法

ACE算法源自retinex算法,可以调整图像的对比度,实现人眼色彩恒常性和亮度恒常性,通过差分来计算目标点与周围像素点的相对明暗关系来校正最终像素值,有很好的增强效果。但是计算复杂度非常高,本文提出...
  • zmshy2128
  • zmshy2128
  • 2016年12月05日 21:25
  • 1840

ACE图像增强算法Opencv实现

1. 概述最近翻阅图像增强算法方面的文献,偶然中找到一篇博客是写的有关ACE图像增强算法的,算法的原理比较简单。本文章中使用到的基本计算方法也是从那篇文章中得到的,这里使用Opencv进行了简单的仿真...
  • m_buddy
  • m_buddy
  • 2016年11月27日 17:10
  • 1988

ACE中的TCP通讯

ACE中的TCP通讯,不罗嗦,直接上代码。
  • iw1210
  • iw1210
  • 2014年07月01日 20:00
  • 1507

ace TCP 服务端和客户端简单程序

// ace_tcp_server.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include #includ...
  • dai_jing
  • dai_jing
  • 2014年01月02日 14:10
  • 1831

Spring AOP增强类型

增强类型 Spring支持5种类型的增强,按照增强在目标类方法的连接点位置,可以分为以下5类。 前置增强: 后置增强: 环绕增强: 异常抛出增强: 前置增强 场景:实习服务生,对客户的问...
  • a82793510
  • a82793510
  • 2015年09月08日 20:20
  • 790

如何提高程序的健壮性,增加判断。

如果后台在返回的时候少了一个属性?前端会不会报错,这是我们前端开发一定会遇到的问题。那么如何的提高程序的健壮性呢。 关于这个问题,我们可以在实例化这个对象的时候进行判读来增加程序的健壮性。下面是一个...
  • qq_29678299
  • qq_29678299
  • 2016年04月02日 19:45
  • 922

Spring学习(5):SpringAOP的5种增强类型

前言Spring使用增强类定义横切逻辑,同时由于Spring只支持方法连接点,增强类还包括在方法的哪一点加入横切代码的方位信息,所以增强既包含横切逻辑,又包含部分连接点信息。本文分别采用继承接口和使用...
  • qq_32166627
  • qq_32166627
  • 2017年06月05日 16:09
  • 1691

增强APP的安全性(一)

增强APP的安全性前言当我们发布一款新的APP的时候,最不愿看到的是我们的成果被别人窃取,所以如何提高我们APP的安全性在开发过程中也是非常重要的。常见增强安全性的手段有很多。例如:混淆Java代码、...
  • oDongFangZhiZi
  • oDongFangZhiZi
  • 2017年01月14日 16:04
  • 260

增强 nginx 的 SSL 安全性

本文向你介绍如何在 nginx 服务器上设置健壮的 SSL 安全机制。我们通过禁用 SSL 压缩来降低 CRIME 攻击威胁;禁用协议上存在安全缺陷的 SSLv3 及更低版本,并设置更健壮的加密套件(...
  • u011537073
  • u011537073
  • 2016年12月29日 23:37
  • 988
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ACE封装——增强类型安全性
举报原因:
原因补充:

(最多只允许输入30个字)