运用设计模式设计MIME编码类 -- 兼谈Template Method和Strategy模式的区别
2007-03-16 21:56:45 来源:WEB开发网核心提示:本文示例源代码或素材下载 本文讲述可重用、易扩充的MIME编码类的设计思路;并顺便对比了Template Method和Strategy模式的区别,一、背景知识MIME是一种Internet协议,运用设计模式设计MIME编码类 -- 兼谈Template Method和Strategy模式的区别,全称为&ldq
本文示例源代码或素材下载
本文讲述可重用、易扩充的MIME编码类的设计思路;并顺便对比了Template Method和Strategy模式的区别。
一、背景知识
MIME是一种Internet协议,全称为“Multipurpose Internet Mail Extensions” ,中文名称为“多用途互联网邮件扩展”。其实,它的应用并不局限于收发Internet邮件——它已经成为Internet上传输多媒体信息的基本协议之一。本文仅关心MIME的编码算法。
MIME编码的原理就是把 8 bit 的内容转换成 7 bit 的形式以能正确传输,在接收方收到之后,再将其还原成 8 bit 的内容。对邮件进行编码最初的原因是因为 Internet 上的很多网关不能正确传输8 bit 内码的字符,比如汉字等。MIME编码共有Base64、Quoted-printable、7bit、8bit和Binary等几种。
Base64算法将输入的字符串或一段数据编码成只含有{''A''-''Z'', ''a''-''z'', ''0''-''9'', ''+'', ''/''}这64个字符的串,''=''用于填充。其编码的方法是,将输入数据流每次取6 bit,用此6 bit的值(0-63)作为索引去查表,输出相应字符。这样,每3个字节将编码为4个字符(3×8 → 4×6);不满4个字符的以''=''填充。
Quoted-printable算法根据输入的字符串或字节范围进行编码,若是不需编码的字符,直接输出;若需要编码,则先输出''='',后面跟着以2个字符表示的十六进制字节值。
二、设计目标
我们计划开发一套MIME编码和解码的类,适用于可以想到的多种应用场合:
更多精彩
赞助商链接