当前位置:  编程技术>软件工程/软件设计
本页文章导读:
    ▪Spring中的依赖注入      Spring中依赖注入的方式有两种:使用setter方法注入和使用构造器注入 第一种:set方法和构造器 -- 基本属性的注入   set注入是一种直接方式,缺点是它假设了所有的可变属性都可以通过set.........
    ▪编程之美 NIM游戏与NIM扩展游戏的讨论及解      编程之美上面有个NIM的游戏,规则如下: 有n堆石头,两个人轮流从中取,一次只能在一堆中取,至少取一个,最多把这一堆取完,取得最后一个石头的人胜利,问谁有必胜策略。 解:  &n.........
    ▪设计模式-06-适配器模式      本文参考自《设计模式-可复用面向对象的基础》,《Java与模式》,《模式-工程化实现及扩展》 一、作用 把一个类的接口变换成客户端所期待的另一种接口,从而使因接口不匹配而无法在一.........

[1]Spring中的依赖注入
    来源: 互联网  发布时间: 2013-11-19

Spring中依赖注入的方式有两种:使用setter方法注入和使用构造器注入

第一种:set方法和构造器 -- 基本属性的注入

  set注入是一种直接方式,缺点是它假设了所有的可变属性都可以通过set方法访问到。例如有些属性在创建时设置一次,以后不再改变。

首先创建一个类,类名为PersonServiceBean.java,代码为:

[java] view plaincopyprint?
  • package cn.csdn.hr.service;  
  •   
  • import java.util.Date;  
  •   
  • publicclass PersonServiceBean {  
  •   
  •      //封装属性   
  •   
  •     private String name;  
  •   
  •     private String sex;  
  •   
  •     private Integer age;  
  •   
  •     private Date birth;  
  •   
  •     public PersonServiceBean() {  
  •   
  •        super();  
  •   
  •        // TODO Auto-generated constructor stub  
  •   
  •     }  
  •   
  •      public PersonServiceBean(String name, String sex, Integer age, Date birth) {  
  •   
  •        super();  
  •   
  •        this.name = name;  
  •   
  •        this.sex = sex;  
  •   
  •        this.age = age;  
  •   
  •        this.birth = birth;  
  •   
  •     }  
  •   
  •     //setter方法来依赖注入   
  •   
  •     publicvoid setName(String name) {  
  •   
  •        this.name = name;  
  •   
  •     }  
  •   
  •     publicvoid setSex(String sex) {  
  •   
  •        this.sex = sex;  
  •   
  •     }  
  •   
  •     publicvoid setAge(Integer age) {  
  •   
  •        this.age = age;  
  •   
  •     }  
  •   
  •     publicvoid setBirth(Date birth) {  
  •   
  •        this.birth = birth;  
  •   
  •     }  
  •     @Override  
  •   
  •     public String toString() {  
  •   
  •        return"PersonServiceBean [name=" + name + ", sex=" + sex + ", age="  
  •   
  •               + age + ", birth=" + birth + "]";  
  •   
  •     }  
  •   
  • }  
  • package cn.csdn.hr.service;
    
    import java.util.Date;
    
    publicclass PersonServiceBean {
    
         //封装属性
    
        private String name;
    
        private String sex;
    
        private Integer age;
    
        private Date birth;
    
        public PersonServiceBean() {
    
           super();
    
           // TODO Auto-generated constructor stub
    
        }
    
         public PersonServiceBean(String name, String sex, Integer age, Date birth) {
    
           super();
    
           this.name = name;
    
           this.sex = sex;
    
           this.age = age;
    
           this.birth = birth;
    
        }
    
        //setter方法来依赖注入
    
        publicvoid setName(String name) {
    
           this.name = name;
    
        }
    
        publicvoid setSex(String sex) {
    
           this.sex = sex;
    
        }
    
        publicvoid setAge(Integer age) {
    
           this.age = age;
    
        }
    
        publicvoid setBirth(Date birth) {
    
           this.birth = birth;
    
        }
        @Override
    
        public String toString() {
    
           return"PersonServiceBean [name=" + name + ", sex=" + sex + ", age="
    
                  + age + ", birth=" + birth + "]";
    
        }
    
    }
    
    


    在xml中用set方法注入,xml的名字为beanset.xml:

    [html] view plaincopyprint?
  • <?xml version="1.0" encoding="UTF-8"
        
  • [2]编程之美 NIM游戏与NIM扩展游戏的讨论及解
        来源: 互联网  发布时间: 2013-11-19

    编程之美上面有个NIM的游戏,规则如下:

    有n堆石头,两个人轮流从中取,一次只能在一堆中取,至少取一个,最多把这一堆取完,取得最后一个石头的人胜利,问谁有必胜策略。

    解:

             设这n堆石头的个数分别是X1,X2……Xn,设F(X)= X1 ^X2 ^ X3……^Xn。如果F(X)= 0则后取的获胜,否则,先取的获胜。

     

    证明:

             如果这剩下的石头的个数的的异或值为0,则无论从一堆中取多少个,取完之后剩下的异或值一定不是0,反之,如果异或值不为0,那么一定可以从一堆中取一些,从而使取完之后的异或值为0.

     

    但是,有一个似乎更难的题目,就是有n堆石头,两个人轮流从中取,一次只能在一堆中取,至少取一个,最多把这一堆取完,取得最后一个石头的人输,问谁有必胜策略。

     

    这个题目的结果与上面完全相同。

     

    证明如下:

             显然,如果某一个人取之前面临的状态是k,1,1,1,1…1,也就是除了一堆不是1,其它的都是1,则这个人一定会胜利,因为这个人可以保证取完之后每一堆剩下的数目都是1,并且还有奇数个,然后这个人一定胜利。

             在游戏开始的时候,如果F(x)=0,则说明第一个人取完之后,F(x)!=0,所以,说明第一个人取完之后游戏的状态不可能全部是1,这样,在第二个人思考的时候,如果此时他面临的状态是k,1,1,…1,则它一定胜利,否则他就从一堆中取,从而使取完之后F(x)=0,这样一直下去,也就是说,最后出现的k,1,1,1…1 一定是第二个人首先看到,这样他一定胜利。

             反之,如果F(x)!= 0,则如果第一个人面临的状态是k,1,1,1…1,则他一定胜利,否则,他可以保证自己取之后使F(x)=0,显然,F(x)=0的时候一定不可能是k,1,1,1…1的状态,也就是说,状态k,1,1,1..1这种状态永远不是第二个人会碰到的,于是,总会到一定时候,第一个人在自己取的时候面临着k,1,1,1..1的状态。当然,如果第一个人取的时候不是k,1,1,1..1的状态,他就应该使自己取完之后F(x)=0。

             证明完毕


    版权所有,各位如果转载请标明出处。谢谢


    作者:wind_2008_06_29 发表于2013-5-17 19:13:00 原文链接
    阅读:0 评论:0 查看评论

        
    [3]设计模式-06-适配器模式
        来源: 互联网  发布时间: 2013-11-19

    本文参考自《设计模式-可复用面向对象的基础》,《Java与模式》,《模式-工程化实现及扩展》

    一、作用

    把一个类的接口变换成客户端所期待的另一种接口,从而使因接口不匹配而无法在一起工作的两个类能够在一起工作(Gang of four)。

    二、角色

    1.Target:客户端期望的新接口。
    2.Adaptee:需要被适配的目标类型,比较老的类型。
    3.Adapter:完成对Adaptee到Target的转化。

    二、分类

    1.类的适配器模式



    2.对象的适配器模式


    三、Code

    1.ITarget

    package com.jue.test;
    
    public interface ITarget {
    
    	public void newRequest();
    
    }

    2.Adaptee

    package com.jue.test;
    
    public class Adaptee {
    
    	public void oldRequest() {
    	}
    
    }

    3.类适配器

    package com.jue.test;
    
    
    public class Adapter1 extends Adaptee implements ITarget {
    
    
    	@Override
    	public void newRequest() {
    		super.oldRequest();
    	}
    
    }

    4.对象适配器

    package com.jue.test;
    
    public class Adapter2 implements ITarget {
    	private Adaptee adaptee;
    
    	public Adapter2(Adaptee adaptee) {
    		this.adaptee = adaptee;
    	}
    
    	@Override
    	public void newRequest() {
    		adaptee.oldRequest();
    	}
    
    }
    四、使用场景

    1.想使用一个已经存在的类,而它的接口不符和新的需求。
    2.(对象适配器)想要使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。

    作者:time_hunter 发表于2013-5-18 9:25:17 原文链接
    阅读:58 评论:0 查看评论

        
    最新技术文章:
    ▪主-主数据库系统架构    ▪java.lang.UnsupportedClassVersionError: Bad version number i...    ▪eclipse项目出现红色叉叉解决方案
    ▪Play!framework 项目部署到Tomcat    ▪dedecms如何做中英文网站?    ▪Spring Batch Framework– introduction chapter(上)
    ▪第三章 AOP 基于@AspectJ的AOP    ▪基于插件的服务集成方式    ▪Online Coding开发模式 (通过在线配置实现一个表...
    ▪观察者模式(Observer)    ▪工厂模式 - 程序实现(java)    ▪几种web并行化编程实现
    ▪机器学习理论与实战(二)决策树    ▪Hibernate(四)——全面解析一对多关联映射    ▪我所理解的设计模式(C++实现)——解释器模...
    ▪利用规则引擎打造轻量级的面向服务编程模式...    ▪google blink的设计计划: Out-of-Progress iframes    ▪FS SIP呼叫的消息线程和状态机线程
    ▪XML FREESWITCH APPLICATION 实现    ▪Drupal 实战    ▪Blink: Chromium的新渲染引擎
    ▪(十四)桥接模式详解(都市异能版)    ▪你不知道的Eclipse用法:使用Allocation tracker跟...    ▪Linux内核-进程
    ▪你不知道的Eclipse用法:使用Metrics 测量复杂度    ▪IT行业为什么没有进度    ▪Exchange Server 2010/2013三种不同的故障转移
    ▪第二章 IoC Spring自动扫描和管理Bean    ▪CMMI简介    ▪目标检测(Object Detection)原理与实现(六)
    ▪值班总结(1)——探讨sql语句的执行机制    ▪第二章 IoC Annotation注入    ▪CentOS 6.4下安装Vagrant
    ▪Java NIO框架Netty1简单发送接受    ▪漫画研发之八:会吃的孩子有奶吃    ▪比较ASP和ASP.NET
    ▪SPRING中的CONTEXTLOADERLISTENER    ▪在Nginx下对网站进行密码保护    ▪Hibernate从入门到精通(五)一对一单向关联映...
    ▪.NET领域驱动设计—初尝(三:穿过迷雾走向光...    ▪linux下的块设备驱动(一)    ▪Modem项目工作总结
    ▪工作流--JBPM简介及开发环境搭建    ▪工作流--JBPM核心服务及表结构    ▪Eclipse:使用JDepend 进行依赖项检查
    ▪windows下用putty上传文件到远程Linux方法    ▪iBatis和Hibernate的5点区别    ▪基于学习的Indexing算法
    ▪设计模式11---设计模式之中介者模式(Mediator...    ▪带你走进EJB--JMS编程模型    ▪从抽象谈起(二):观察者模式与回调
    ▪设计模式09---设计模式之生成器模式(Builder)也...    ▪svn_resin_持续优化中    ▪Bitmap recycle方法与制作Bitmap的内存缓存
    ▪Hibernate从入门到精通(四)基本映射    ▪设计模式10---设计模式之原型模式(Prototype)    ▪Dreamer 3.0 支持json、xml、文件上传
    ▪Eclipse:使用PMD预先检测错误    ▪Jspx.net Framework 5.1 发布    ▪从抽象谈起(一):工厂模式与策略模式
    ▪Eclipse:使用CheckStyle实施编码标准    ▪【论文阅读】《Chain Replication for Supporting High T...    ▪Struts2 Path_路径问题
    ▪spring 配置文件详解    ▪Struts2第一个工程helloStruts极其基本配置    ▪Python学习入门基础教程(learning Python)--2 Python简...
    ▪maven springmvc环境配置    ▪基于SCRUM的金融软件开发项目    ▪software quality assurance 常见问题收录
    ▪Redis集群明细文档    ▪Dreamer 框架 比Struts2 更加灵活    ▪Maven POM入门
    ▪git 分支篇-----不断更新中    ▪Oracle非主键自增长    ▪php设计模式——UML类图
    ▪Matlab,Visio等生成的图片的字体嵌入问题解决...    ▪用Darwin和live555实现的直播框架    ▪学习ORM框架—hibernate(二):由hibernate接口谈...
    ▪(十)装饰器模式详解(与IO不解的情缘)    ▪无锁编程:最简单例子    ▪【虚拟化实战】网络设计之四Teaming
    ▪OSGi:生命周期层    ▪Javascript/Jquery——简单定时器    ▪java代码 发送GET、POST请求
    ▪Entity Framework底层操作封装(3)    ▪HttpClient 发送GET、POST请求    ▪使用spring框架,应用启动时,加载数据
    ▪Linux下Apache网站目录读写权限的设置    ▪单键模式的C++描述    ▪学习ORM框架—hibernate(一):初识hibernate
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3