摘要:
将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行得建造过程。例子: 1 class House{ 2 private String base; 3 private String wall; 4 private String roof; 5 public String getBase() { 6 return base; 7 } 8 public void setBase(Strin... 阅读全文
摘要:
核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。例子:请MM去麦当劳吃汉堡,不同的MM有不同的口味,要每个都记住是一件烦人的事情,我一般采用Factory Method模式,带着MM到服务员那儿,说“要一个汉堡”,具体要什么样的汉堡呢,让MM直接跟服务员说就行了。 1 interface Sample{ 2 public void say(); 3 } 4 5 class SampleA implements Sample{ 6 public void sa... 阅读全文
摘要:
客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。例子:追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 1 interface Sample{ 2 public void say(); 3 } 4 5 class SampleA implements Sample{ 6 public void say(){ 7 Syst... 阅读全文
摘要:
Struts2是在WebWork2基础发展而来的。和struts1一样, Struts2也属于MVC框架。不过有一点大家需要注意的是:尽管Struts2和Struts1在名字上的差别不是很大,但Struts2和Struts1在代码编写风格上几乎是不一样的。那么既然有了Struts1,为何还要推出Struts2。主要是因为Struts2有以下优点:1. 在软件设计上Struts2没有像struts1那样跟Servlet API和struts API有着紧密的耦合,Struts2的应用可以不依赖于Servlet API和struts API。 Struts2的这种设计属于无侵入式设计,而Strut 阅读全文
摘要:
在上学的时候,数据库之中就讲过数据库范式,现在突然想复习下,就上网查了下发现还是自己亲自理一遍比较清晰先引用百度百科中的一段话: 关系数据库中的关系必须满足一定的要求,即满足不同的范式。 目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。好家伙,竟然一共有6种范式- -汗,以前只知道第一第二第三范式,好吧,貌似一二三也足够解决问.. 阅读全文
摘要:
在Student.xml中添加: <select id="selectStudentByName" parameterClass="String" resultClass="Student"> select * from student where name like '%$name$%' </select>此处标红特别注意,跟以往写法不同,可以理解为##自动帮你添加引号,而$$不添加引号进行单元测试: 1 @Test 2 public void queryStudentByName() thr 阅读全文
摘要:
在Student.xml中添加: <update id="updateStudent" parameterClass="Student"> update student set name=#name#, score=#score# where id=#id# </update>进行单元测试: 1 @Test 2 public void updateStudent() throws Exception{//更新学生 3 Reader reader=Resources.getResource... 阅读全文
摘要:
在Student.xml中添加如下代码: <delete id="deleteStudentById" parameterClass="int"> delete from student where id=#id# </delete>在junit中进行测试:1 @Test2 public void deleteStudent() throws Exception{//根据Id删除学生3 Reader reader=Resources.getResourceAsReader("SqlMapConfig.xml... 阅读全文
摘要:
在Student.xml中加入: <insert id="insertStudent" parameterClass="Student"> insert into student ( id , name , score ) values (#id#,#name#,#score#) </insert>并在junit中测试: 1 @Test 2 public void addStudent() throws Exception{//新增学生 3 Reader reader=Resources.getR... 阅读全文
摘要:
在Student.xml中插入如下代码: <!-- parameterClass代表要传入的参数类型 --> <select id="SelectStudentById" parameterClass="int" resultClass="Student"> select * from student where id=#id# </select>然后在junit中进行测试:1 @Test2 public void queryStudentById() throws Exception{//根据Id 阅读全文