RF-SIM卡简介

RF-SIM卡简介
RFSIM卡是可实现中近距离无线通信的手机智能卡,专利技术是一个可代替钱包、钥匙和身份证的全方位服务平台。它的最大特点是不需换手机,现有手机换一张智能卡后就成了类 NFC手机,但使用的频率是2.4G,不是13.56M,通信距离可在10-500CM自动调整,单向支持100M(数据广播)


SIM 卡部分用于正常的手机移动通讯、鉴权,仅用作与手机的物理连接;
内置软件用于管理高安全度的RF-ID、 内置e-credit电子信用卡、EMV电子钱包以及其他基于mifare 逻辑的VIP会员卡;
使用微型RF模块并通过内置的天线与外部设备通讯。
通讯特征:
使用2.4G频段, 自动选频
通信速率1M,高可靠性连接与通信
支持自动感应和主动出发连接两种通信方法
双向通信距离10CM-500CM,可以根据应用调整
单向数据广播(半径100M)
刷卡感应功能可自行启闭(节电)
数据空中传输自动TDES加密, 防窃听数据,刷卡时双向认证
RF-SIM卡主要功能包括:
• 标准SIM功能(GSM 11.11,11.14),
• 电子钱包功能(模拟Mifare数据逻辑结构并符合PBOC2.0以及EMV电子信用卡的规范要求,支持空中开卡和充值),
• 远程支付功能(Rsa),
• 超级VIP卡功能(CRM 、积分、打折、交易),
• 电子票据功能,可以应用RF-SIM卡
• 电子证件功能,
• 名片交换功能,
• 现场组网隐身聊天功能(QQ),
• 彩票功能,
• 门禁功能,
• 情景OTA。

Java 工厂模式

工厂模式定义:提供创建对象的接口.

为何使用?
工厂模式是我们最常用的模式了,著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。

为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑实用工厂模式,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。

我们以类Sample为例, 如果我们要创建Sample的实例对象:

Sample sample=new Sample();

可是,实际情况是,通常我们都要在创建sample实例时做点初始化的工作,比如赋值 查询数据库等。

首先,我们想到的是,可以使用Sample的构造函数,这样生成实例就写成:

Sample sample=new Sample(参数);

但是,如果创建sample实例时所做的初始化工作不是象赋值这样简单的事,可能是很长一段代码,如果也写入构造函数中,那你的代码很难看了(就需要Refactor重整)。

为什么说代码很难看,初学者可能没有这种感觉,我们分析如下,初始化工作如果是很长一段代码,说明要做的工作很多,将很多工作装入一个方法中,相当于将很多鸡蛋放在一个篮子里,是很危险的,这也是有背于Java面向对象的原则,面向对象的封装(Encapsulation)和分派(Delegation)告诉我们,尽量将长的代码分派“切割”成每段,将每段再“封装”起来(减少段和段之间偶合联系性),这样,就会将风险分散,以后如果需要修改,只要更改每段,不会再发生牵一动百的事情。

在本例中,首先,我们需要将创建实例的工作与使用实例的工作分开, 也就是说,让创建实例所需要的大量初始化工作从Sample的构造函数中分离出去。

这时我们就需要Factory工厂模式来生成对象了,不能再用上面简单new Sample(参数)。还有,如果Sample有个继承如MySample, 按照面向接口编程,我们需要将Sample抽象成一个接口.现在Sample是接口,有两个子类MySample 和HisSample .我们要实例化他们时,如下:

Sample mysample=new MySample();
Sample hissample=new HisSample();

随着项目的深入,Sample可能还会"生出很多儿子出来", 那么我们要对这些儿子一个个实例化,更糟糕的是,可能还要对以前的代码进行修改:加入后来生出儿子的实例.这在传统程序中是无法避免的.

但如果你一开始就有意识使用了工厂模式,这些麻烦就没有了.

工厂方法
你会建立一个专门生产Sample实例的工厂:

public class Factory{

  public static Sample creator(int which){

  //getClass 产生Sample 一般可使用动态类装载装入类。
  if (which==1)
    return new SampleA();
  else if (which==2)
    return new SampleB();

  }

}

那么在你的程序中,如果要实例化Sample时.就使用

Sample sampleA=Factory.creator(1);

这样,在整个就不涉及到Sample的具体子类,达到封装效果,也就减少错误修改的机会,这个原理可以用很通俗的话来比喻:就是具体事情做得越多,越容易范错误.这每个做过具体工作的人都深有体会,相反,官做得越高,说出的话越抽象越笼统,范错误可能性就越少.好象我们从编程序中也能悟出人生道理?呵呵.

使用工厂方法 要注意几个角色,首先你要定义产品接口,如上面的Sample,产品接口下有Sample接口的实现类,如SampleA,其次要有一个factory类,用来生成产品Sample,如下图,最右边是生产的对象Sample:

进一步稍微复杂一点,就是在工厂类上进行拓展,工厂类也有继承它的实现类concreteFactory了

抽象工厂
工厂模式中有: 工厂方法(Factory Method) 抽象工厂(Abstract Factory).

这两个模式区别在于需要创建对象的复杂程度上。如果我们创建对象的方法变得复杂了,如上面工厂方法中是创建一个对象Sample,如果我们还有新的产品接口Sample2.

这里假设:Sample有两个concrete类SampleA和SamleB,而Sample2也有两个concrete类Sample2A和SampleB2

那么,我们就将上例中Factory变成抽象类,将共同部分封装在抽象类中,不同部分使用子类实现,下面就是将上例中的Factory拓展成抽象工厂:

public abstract class Factory{

  public abstract Sample creator();

  public abstract Sample2 creator(String name);

}

public class SimpleFactory extends Factory{

  public Sample creator(){
    .........
    return new SampleA

  }

  public Sample2 creator(String name){
    .........
    return new Sample2A

  }

}

public class BombFactory extends Factory{

  public Sample creator(){
    ......
    return new SampleB
 
  }

  public Sample2 creator(String name){
    ......
    return new Sample2B
  }

}

 

从上面看到两个工厂各自生产出一套Sample和Sample2,也许你会疑问,为什么我不可以使用两个工厂方法来分别生产Sample和Sample2?

抽象工厂还有另外一个关键要点,是因为 SimpleFactory内,生产Sample和生产Sample2的方法之间有一定联系,所以才要将这两个方法捆绑在一个类中,这个工厂类有其本身特征,也许制造过程是统一的,比如:制造工艺比较简单,所以名称叫SimpleFactory。

在实际应用中,工厂方法用得比较多一些,而且是和动态类装入器组合在一起应用,

举例

我们以Jive的ForumFactory为例,这个例子在前面的Singleton模式中我们讨论过,现在再讨论其工厂模式:

public abstract class ForumFactory {

  private static Object initLock = new Object();
  private static String className = "com.jivesoftware.forum.database.DbForumFactory";
  private static ForumFactory factory = null;

  public static ForumFactory getInstance(Authorization authorization) {
    //If no valid authorization passed in, return null.
    if (authorization == null) {
      return null;
    }
    //以下使用了Singleton 单态模式
    if (factory == null) {
      synchronized(initLock) {
        if (factory == null) {
            ......

          try {
              //动态转载类
              Class c = Class.forName(className);
              factory = (ForumFactory)c.newInstance();
          }
          catch (Exception e) {
              return null;
          }
        }
      }
    }

    //Now, 返回 proxy.用来限制授权对forum的访问
    return new ForumFactoryProxy(authorization, factory,
                    factory.getPermissions(authorization));
  }

  //真正创建forum的方法由继承forumfactory的子类去完成.
  public abstract Forum createForum(String name, String description)
  throws UnauthorizedException, ForumAlreadyExistsException;

  ....

}

 

 

因为现在的Jive是通过数据库系统存放论坛帖子等内容数据,如果希望更改为通过文件系统实现,这个工厂方法ForumFactory就提供了提供动态接口:

private static String className = "com.jivesoftware.forum.database.DbForumFactory";

你可以使用自己开发的创建forum的方法代替com.jivesoftware.forum.database.DbForumFactory就可以.

在上面的一段代码中一共用了三种模式,除了工厂模式外,还有Singleton单态模式,以及proxy模式,proxy模式主要用来授权用户对forum的访问,因为访问forum有两种人:一个是注册用户 一个是游客guest,那么那么相应的权限就不一样,而且这个权限是贯穿整个系统的,因此建立一个proxy,类似网关的概念,可以很好的达到这个效果.  

看看Java宠物店中的CatalogDAOFactory:

public class CatalogDAOFactory {

  /**

  * 本方法制定一个特别的子类来实现DAO模式。
  * 具体子类定义是在J2EE的部署描述器中。
  */

  public static CatalogDAO getDAO() throws CatalogDAOSysException {

    CatalogDAO catDao = null;

    try {

      InitialContext ic = new InitialContext();
      //动态装入CATALOG_DAO_CLASS
      //可以定义自己的CATALOG_DAO_CLASS,从而在无需变更太多代码
      //的前提下,完成系统的巨大变更。

      String className =(String) ic.lookup(JNDINames.CATALOG_DAO_CLASS);

      catDao = (CatalogDAO) Class.forName(className).newInstance();

    } catch (NamingException ne) {

      throw new CatalogDAOSysException("
        CatalogDAOFactory.getDAO: NamingException while 
          getting DAO type : \n" + ne.getMessage());

    } catch (Exception se) {

      throw new CatalogDAOSysException("
        CatalogDAOFactory.getDAO: Exception while getting 
          DAO type : \n" + se.getMessage());

    }

    return catDao;

  }

}


CatalogDAOFactory是典型的工厂方法,catDao是通过动态类装入器className获得CatalogDAOFactory具体实现子类,这个实现子类在Java宠物店是用来操作catalog数据库,用户可以根据数据库的类型不同,定制自己的具体实现子类,将自己的子类名给与CATALOG_DAO_CLASS变量就可以。

由此可见,工厂方法确实为系统结构提供了非常灵活强大的动态扩展机制,只要我们更换一下具体的工厂方法,系统其他地方无需一点变换,就有可能将系统功能进行改头换面的变化。

网上连锁店系统(开发中)(B/S)

  网上连锁店系统(开发中)(B/S)

项目简介:该应用是一个网上精品连锁店系统。该应用实现了对于个人消费者来是通过Internet网络进行购物与电子支付的功能。对于商家实现了网络进销货的功能的电子商务功能。

开发时间:2008.7至今

所用技术:AJAX+WebService+JSP+ Struts +JavaBeen+EJB+SQL Server(Oracle)

主要开发工具: Eclipse3.2+Tomcat5.5.20+JBOSS

开发人数:6

模块描述:网店前台和客户购物车实现




[广告] 特惠尝必胜客26道新品

卖手机了哦!

买家:老板,这个手机的铃声怎么样? 
卖家:绝对能响! 
买家:掌柜的,这个手机的最大优点是什么? 
卖家:可以打电话。 
买家:哦!有什么缺点呢? 
卖家:不能剃须。 
买家:老板,有什么手机最耐用? 
卖家:只有相对耐用的,没有绝对耐用的。 
买家:为什么? 
卖家:你见过谁家有祖传的手机? 
买家:老板,有巧克力吗? 
卖家:有,德芙的,还有金帝的。 
买家:我是说手机! 
卖家:哦,经你这么一提醒我才知道我是卖手机的。 
买家:老板,那你再给说说怎么分辨原装电池和组装电池。 
卖家:你把电池扔到火堆里,原装的爆炸声音更响些。 
买家:这么贵的手机,我还不如买个笔记本电脑。 
卖家:也对,我想你站在人群中,把笔记本翻开,贴在耳朵边听电话的造型一定很酷。 
买家:老板,这个手机大概有多重? 
卖家:60多克。 
买家:哎!其他都好,我就是嫌太轻了。 
卖家:你可以绑在哑铃上使用。 
买家:哥哥,你给我说说智能手机和非智能手机有什么区别啊! 
卖家:就以闹钟为例,一般的手机到点就闹,闹得醒闹不醒不管,智能手机见闹不醒你,会打电话给你们单位领导请假。 
买家:哦! 
买家:老板,你们卖手机赚钱吗? 
卖家:那是相当的赚。 
买家:那一个月能赚多少? 
卖家:你先买部手机,让我先赚点钱,把昨天的饭钱结了再告诉你。 

Hibernate3.2 核心包作用

包 作用 说明
jta.jar 标准的JTA API 必要
commons-logging.jar 日志功能 必要
commons-collections.jar 集合类 必要
antlr.jar ANother Tool for Language Recognition(antlr) 必要
dom4j.jar XML配置和映射解释器 必要 
Hibernate3.jar 核心库 必要
asm.jar ASM字节码库 如果使用“cglib”则必要
asm-attrs.jar ASM字节码库 如果使用“cglib”则必要
ehcache.jar EHCache缓存 如果没有其它的缓存,则它是必要的
cglib.jar CGLIB 字节码解释器 如果使用“cglib”则必要
以下包可选
versioncheck.jar 版本检查
swarmcache.jar
jboss-cache.jar TreeCache
jgroups.jar
xml-apis.jar JAXP API
c3p0-0.9.1.jar C3PO JDBC链接池
connector.jar JCA API
jboss-system.jar 使用TreeCache时必要
jacc-1_0-fr.jar JACC 库
checkstyle-all.jar
junit.jar
javassist.jar Javassist 字节码解释器
ant-lanuncher.jar
jaas.jar JAAS API
jdbc2_0-stdext.jar JDBC扩展API
ant-antlr.jar Ant antlr支持
jboss-jmx.jar
cleanimports.jar cleanimports
xerces.jar SAX parser JDK版本低于1.4时必要
jaxen-1.1-beta-7.jar Jaxen 如果想提高启动性能则去使用
ant-junit.jar Ant junit support
ant-swing.jar ant swing support
ant.jar
proxool.jar Proxool JDBC连接池
concurrent.jar 使用TreeCache需要
syndiag2.jar

QQ经典搞笑签名

1.我和超人的唯一区别是:我把内裤穿在里面了。   

  2.我不是随便的人,但随便起来就不是人。  

  3.我身在江湖,江湖却没有关于我的传说……  

  4.走别人的路,让别人无路可走。

  5.听说女人如衣服,兄弟如手足,回想起来,我竟然七手八脚地裸奔了19年!  

  6.宁愿相信世间有鬼,也不相信男人那张破嘴!
    
  1.水至清则无鱼,人至贱则无敌。  

  2.骑白马的不一定是王子,他可能是唐僧;带翅膀的也不一定是天使——妈妈说,那是鸟人。  

  3.时间和乳沟一样,挤一挤还是有的。  

  4.一山不能容二虎,除非一公和一母。  

  5.对流血一周仍然不死的动物千万不能大意……  

  6.我,一个大学生的人生奋斗目标:农妇,山泉,有点田。  

  7.女人谨记:一定要吃好玩好睡好喝好。一旦累死了,就别的女人花咱的钱,住咱的房,睡咱的老公,泡咱的男朋友,还打咱的娃。  
 

  1.春天,我把自己埋在村口的土地里,到了秋天就收获了好多的帅哥。然后我把村里的名字改成“帅哥村”,我也如愿以偿 当上了村长。  

  2.有一天,我梦见自己的钱花光了,醒来一看,口袋真的空空……

  3.我减肥已取得了很大的成功,你看,我三个下巴都尖了!  

  4.巧克力的麻烦是:你把它吃了,它就没了。  

  5.千万别等到人人都说你丑时才发现自己真的丑。  

  6.如果朋友可以出卖,每个值五块的话,我也能发笔小财了。  

  7.肚子大不可怕,可怕的是大而无料。  

  8.相亲最大的好处是:如果日后婚姻出问题,你可以把责任推给媒人。

  9.女人先表现自己大方,男人就不敢小气。  

  10.人,生在床上,死在床上,欲生欲死,也在床上。   
 

  1.巫师,请转告公主,老子还在披荆斩棘的路上,还有雪山未翻、大河未过、巨龙未杀、美女未泡……叫她继续死睡吧!  

  2.我的意中人是个绝色大美女,终有一天她会骑着喷火的恐龙来嫁给我。但是,故事的结局,我只看到了她的坐骑,却没看 到它的主人。
    

  1.树不要皮,必死无疑;人不要脸,天下无敌。  

  2.无所为而无所谓,无所谓而无所不为。

  3.铁饭碗的真正含义不是在一个地方有饭吃,而是一辈子到哪儿都有饭吃。   

  4.骚归骚,骚有骚的贞操;贱归贱,贱有贱的尊严。  

  5.如果多吃鱼可以让人变聪明的话,那么我肯定至少吃过一对鲸鱼…… 

  6.人生的成功不在于拿到一副好牌,而是怎样将坏牌打好。  

  7.0岁出场亮相,10岁天天向上。20岁远大理想,30岁发奋图强。 40岁基本定向,50岁处处吃香。60岁打打麻将,70岁处处闲 逛。80岁拉拉家常,90岁挂在墙上!  

  8.出生时你哭着,所有都笑着;离去时你笑着,所有都哭着。

  9.站得更高,尿得更远。  

  10.穿别人的鞋,走自己的路,让他们找去吧。  

  11.再过几十年,我们来相会,送到火葬场,全部烧成灰,你一堆,我一堆,谁也不认识谁,全部送到农村做化肥。

  12.自从我变成了狗屎,就再也没有人踩在我头上了。
 

  1.鱼和胸罩不可兼得。  

  2.内行看门道,外行看人行道。  

  3.路边野花不要,踩!  

  4.碰到一个MM个性签名:琴棋书画不会,洗衣做饭嫌累。  

  5.碰到一个GG个性签名:给我一个姑娘,我可以创造一个民族。  

  6.碰到一个老陕个性签名:丑女多作怪,黑馍多夹菜。  

  7.碰到我们老师个性签名:告诉你现在老师很生气,后果是很严重的(在他第N次相亲失败之后)。  

  8.碰到一个写手个性签名:也许似乎大概是,然而未必不见得。  

  9.碰到一个情圣个性签名:说过的话可以不算,喜欢的人天天要换。

  10.碰到班里的睡觉大王个性签名:早中晚三个饱,饭前饭后六个倒。
 

  1.午夜12点准时下线!否则,公主就会变回灰姑娘。

  2.喂,请问是中国移动吗?我是中国联通,我的小灵通坏了,你们能派中国铁通来修一下吗?

  3.本人中科院高级潜水院院士,诺贝尔长期掉线奖,奥斯卡终身隐身奖……

  4.在天愿作比翼鸟,在地愿作同圈猪!  

  5.你放心,看到你我连食欲都没了,还谈什么性欲!  

  6.虽在裸睡中,但即插即用……  

  7.五马分尸中——你来一块不?  

  8.上帝说:“要有光。”我说:“不批准!”于是我们便有了黑夜。

  9.我把KONKA的电视遥控器别在裤腰上,假装新买了个NOKIA手机。  

  10.如果早上来得晚一些的话,我想我会喜欢早上的。  
 

  1.我不能给你幸福,但可以给你舒服!

  2.生活真他妈好玩,因为生活老他妈玩我。  

  3.佛曰:“前世的500次回眸才换来今生的一次擦肩而过。”我宁愿用来世的一次擦肩而过来换得今生的500次回眸。  

  4.黑夜给了我一双黑色的眼睛,可我却用它来翻白眼。

  5.我是个演员,一看见漂亮MM眼就圆……  

  6.天使之所以会飞,是因为她们把自己看得很轻……

  7.我想早恋,但是已经晚了……

  8.天哪!我的衣服又瘦了。  

  9.这个世界上我只相信两个人,一个是我,另一个不是你。  

  10.以后不要在我面前说英文,OK? 
 

  1.思想有多远,你就给我滚多远! 

  2.流氓不可怕,就怕流氓有文化。  

  3.客官请自重,小女子只卖身不卖艺。  

  4.你不能让所有人满意,因为不是所有的人都是人!

  5.男人的谎言可以骗女人一夜,女人的谎言可以骗男人一生!  

  6.如果你不能给你的女人穿上嫁衣,那么千万别停下你解开她衣扣的手!

  7.走NB的路,让SB去说吧!  

  8.水能载舟,亦能煮粥!  

  9.子在川上曰:“有船多好乎!”  

  10.开车无难事,只怕有新人!  
 

  1.诚征小MM,共同来灌水;我灌长江头,君灌长江尾。

  2.一见钟情,再而衰,三而竭。  

  3.一个人并不孤单,想一个人时才孤单。  

  4.生,容易。活,容易。生活不容易。  

  5.如果我能够看到我的背影,我想它一定很忧伤,因为我把快乐都留在了前面!

  6.工作QQ,谢绝闲聊,若要强聊,每字伍毛;标点符号,半价收费,千字以上,八折优惠;表情图片,十块包月,语音视频 ,暂未开通;先款后聊,款到即聊,在线支付,提供发票; 免付月租,单项收费,节假双休,照常营业;诚征代理,
  

1.出问题先从自己身上找原因,别一便秘就怪地球没引力。  

  2.路漫漫其修远兮,吾将上下而求人。

  3.家穷人丑,一米四九;小学文化,农村户口;破屋三间,薄田一亩;今日上网,广征女友;革命路上,并肩携手。

  4.给我织一条围巾,我愿以一生关怀相回报。否则,你就用围巾勒死我吧!  

  5.男人在不懂的时候装懂,女人则恰好相反。  

  6.为配合今年中国计划生育工作的胜利完成,本人决定暂时不和异性朋友接触,谢谢合作。
   

  1.鸟大了,什么林子都有。  

  2.春色满园关不住,我拉红杏出墙来。

  3.你以为我会眼睁睁看着你去送死吗?我会闭上眼睛的。

  4.我以为我很颓废,今天我才知道,原来我早报废了。

  5.老吾老以及人之老,妻吾妻以及人之妻。

  6.我视金钱如粪土,我爸视我如粪池。 

  7.我喝酒是想把痛苦溺死,但这该死的痛苦却学会了游泳。  

  8.我是你的风筝,线在你手上,可陪伴我的只有风