JAVA模式一 Adapter 【转】
Java与模式:适配器模式
来源(http://lavasoft.blog.51cto.com/62575/90767)
目的:
将一个类的接口转换成客户希望的另外一个接口。A d a p t e r 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
意图:
你想使用一个已经存在的类,而它的接口不符合你的需求。
你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。
(仅适用于对象A d a p t e r )你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。
(目的和意图是不变的,摘自《设计模式迷你手册》电子版)
下面是一个Java版的示例
一、原理图:
二、示例代码
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2008-8-2 14:43:46
* 源角色
*/
public
class
Adaptee {
public
int
get220v(){
return
220;
}
}
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2008-8-2 14:43:23
* 目标角色
*/
public
interface
Target {
int
get110v();
int
get220v();
}
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2008-8-2 14:43:07
* 适配器角色:扩展源角色,实现目标角色,从而使得目标角色改动时候,不用改动源角色,只要改动适配器
*/
public
class
Adapter extends
Adaptee implements
Target{
public
int
get110v(){
return
110;
}
}
/**
* Created by IntelliJ IDEA.
* User: leizhimin
* Date: 2008-8-2 15:00:31
* 客户端
*/
public
class
Client {
public
static
void
main(String rags[]) {
new
Client().test();
}
public
void
test() {
Targe
相关文档:
1、语汇单元的组成:
1)经过分析产生的基本单元。在索引时,Lucene使用特定的分析器来处理需要被语汇单元化的指定域,并将每个语汇单元以项的形式写入索引。
2)起点偏移量是指语汇单元文本的起始字符在原广西中的位置,而终点的偏移量则表示语汇单元终止字符的下一个位置。
3)文本被语汇单元化后,相对于前一语汇单 ......
/* @author AnShuFeng
* @version 1.0
* 人人对战象棋
* XiangQi.java
*/
import java.awt.*;
import java.awt.event.*;
import javax.imageio.*;
import java.io.*;
import javax.swing.*;
import java.awt.image.*;
public class XiangQi
{
JFra ......
"^\d+$" //非负整数(正整数 + 0)
"^\[0-9\]*\[1-9\]\[0-9\]*$" //正整数
"^((-\d+)\|(0+))$" //非正整数(负整数 + 0)
"^-\[0-9\]*\[1-9\]\[0-9\]*$" //负整数
"^-?\d+$" //整数
"^\d+(\.\d+)?$" //非负浮点数(正浮点数 + 0)
"^((\[0-9\]+\.\[0-9\]*\[1-9\]\[0-9\]*)\|(\[0-9\]*\[1-9\]\[ ......
1. 抽象
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
2. 继承
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了 ......
如基本的单向加密算法:
● BASE64 严格地说,属于编码格式,而非加密算法
● MD5(Message Digest algorithm 5,信息摘要算法)
● SHA(Secure Hash Algorithm,安全散列算法)
● HMAC(Hash Message Authen ......