架构及设计模式
rongyongfeikai2
这个作者很懒,什么都没留下…
展开
-
测试驱动开发笔记
《测试驱动开发》,弱弱的看了几十面,实在看不下去了。反正觉得总体一句话:首先确定测试(需要的功能),再快速的做出来,再在此基础上进行修改。 TDD(Test-driven development)测试驱动开发,是极限编程(XP)最常用的一种方式。即使你不是采用的极限编程这种软件开发方法,也应该采用。因为这种方式可以让你的代码整洁好用。 我们将建立一个计划清单,当开始某项工作时,就用粗体表示,而原创 2011-11-25 10:21:32 · 559 阅读 · 0 评论 -
设计模式学习笔记之抽象工厂设计模式
抽象工厂,是提供一组接口,而不考虑实现。 比如我们有两个接口,IUser和IClass,负责往数据库里面添加信息。然后有OracleUser和OracleClass,负责往Oracle的数据库中添加信息。然后有SqlserverUser和SqlserverClass,负责往Sql server数据库中添加信息。那么,就需要一个抽象工厂,返回用户所需要的具体对象。 我们用properties来储原创 2012-08-02 10:35:20 · 810 阅读 · 0 评论 -
设计模式学习笔记之工厂模式
工厂模式是提供了创建了对象的接口,将具体创建什么对象延迟到子类完成。 下面是工厂模式的实例: 有一个操作类的抽象类: package com.DesignPolicyLearn.Factory; /* * author:Tammy Pi * function:操作的抽象类 */ public abstract class Operation { public abst原创 2012-08-10 09:08:07 · 795 阅读 · 0 评论 -
设计模式学习笔记之原型模式
原型模式提供了确定对象种类的接口,客户端通过拷贝原型来创建重复的对象。 Java中原型模式的实现,即是使用clone方法。 例如我们有一个Cat类: package com.DesignPolicyLearn.Prototype; /* * author:Tammy Pi * function:猫类 */ public class Cat { private Stri原创 2012-08-10 09:26:50 · 659 阅读 · 0 评论 -
设计模式学习笔记之代理模式
代理,为其他对象提供了一种代理,以控制对该对象的访问。 其实,就是一种【间接】调用的关系。其他对象调用代理的方法,其实是代理中的被代理对象提供的方法。 实例如下: package com.DesignPolicyLearn.Proxy; /* * author:Tammy Pi * function:Person的抽象类 */ public abstract class Pe原创 2012-08-07 09:52:21 · 581 阅读 · 0 评论 -
设计模式学习笔记之装饰器模式
所谓装饰器模式,即可以灵活的为已有的功能添加新的功能。具体的实例如下: 有一个变形金刚的抽象类: package com.DesginPolicyLearn.Decorate; /* * author:Tammy Pi * function:变形金刚的抽象类 */ public abstract class Transformer { public abstract原创 2012-08-07 09:05:01 · 849 阅读 · 0 评论 -
设计模式学习笔记之依赖倒转原则
看到依赖倒转,几乎让我猛然想起Spring里的IoC依赖注入。其实两个是不同的概念。 依赖注入,指的是,原来一个类要使用其他类的对象时,需要自己在本类中new一个。而用了Spring之后,只需要在本类中声明一下,然后给个get/set方法,那么实例化的工作就由spring通过扫描applicationContext.xml文件,自己通过反射为其实例化了。由于不需要自己实例化,而是依赖Spring原创 2012-08-07 08:36:26 · 684 阅读 · 0 评论 -
设计模式学习笔记之单一责任模式
一个类,应该只有一个让其变化的原因,也就是说,它的职责应该只有一个。如果一个类,拥有过多的职责,那么就证明代码的耦合性过强。 举个简单的例子:学生在黑板上画圆。画圆的动作应该由圆提供,而不是由黑板提供。如果由黑板提供,那么就违反了单一责任模式了。原创 2012-08-03 12:57:16 · 618 阅读 · 0 评论 -
设计模式学习笔记之策略模式
策略模式,是对一系列的算法进行了封装,使得它们之间可以相互替换。(神一般的语言,我真的无法体会) 示例代码如下: package StrategyPolicy; public interface IAlgorithm { public void describe(); } 然后有三个alogrithm分别实现此接口: package StrategyPolicy; p原创 2012-08-03 11:35:57 · 596 阅读 · 0 评论 -
设计模式学习笔记之简单工厂模式
所谓简单工厂模式,即提供创建对象的接口,而具体创建什么对象,由客户端决定。 比如,我们有IBird这样一个抽象类,有Chicken和Duck这两个类实现IBird。那么,如果我们想灵活的创建Chicken或IBird,那么就需要用到简单工厂模式。 SimpleFactory根据接收到的字符串,决定返回的对象。客户端用父类引用接收子类对象,不需要判别其差别,即可以得到想用的对象。 如下,是这4原创 2012-08-02 09:42:07 · 837 阅读 · 0 评论 -
设计模式学习笔记之迭代器模式
所谓迭代器模式,即将迭代遍历的方法抽象出来,用一个迭代器类来专门负责迭代遍历。 首先定义迭代器的接口: package IteratorPolicy; /* * author:Tammy Pi * function:迭代器的接口 */ public interface Iterator { public int first(); public int next();原创 2012-08-01 17:43:06 · 518 阅读 · 0 评论 -
CVS配置实例
一.关于CVSNT 用的是WIN7的系统,默认CVS的control panel是打不开的,所以CVSNT装好后,需用cmd命令行建立库。 1.cvs -v 可以看到cvs的版本号,那么就证明cvs安装成功。 2.cvs -d d:\MyCvsProject init从而建立了CVS的库 3.CVSNT默认的用户名和密码为系统的用户名和密码 (保证CVS服务启动了) 二.MyEcli原创 2012-06-21 15:42:10 · 732 阅读 · 0 评论 -
小孩睡觉模拟(Observer设计模式)
一小孩睡觉,醒了要东西吃,父亲就得喂他东西。 典型的模拟题。代码如下: import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; class Child{ private boolean wakenUp; public Child() { tr原创 2012-06-08 14:35:03 · 1173 阅读 · 0 评论 -
DWR+Spring+Hibernate+Oracle在MyEclipse搭建框架示例
IDE为MyEclipse。 首先新建一个项目,取名为QSWB(奇傻无比)。我们用c3p0连接池连接Oracle数据库,所以首先准备好c3p0的jar包和oracle的jar包。 分别为:c3p0-0.9.1.2.jar,c3p0-0.9.1.jar,classes12.jar。放入WEB-INF的lib包中。 项目建立文件夹如下图所示: 然后,在项目上点击右键,MyEclipse->A原创 2012-03-07 22:19:56 · 1143 阅读 · 0 评论 -
设计模式学习笔记之组合模式
所谓组合模式,即反映部分与整体的关系。使得用户按照同样的方式操作单个对象和对象组合。 举个例子:我们要实现一棵树,那么这棵树就是整体,而树又是又子树构成,子树又由子子树构成。那么树中的两大部分:1.叶子节点 2.子树,即节点的集合。 我们可以知道,对于子树而言,应该有添加功能(增加一个节点),删除功能(删除一个节点),以及显示功能(方便测试)。那么对于叶子节点而言,我们也为它上这三个功能,虽然原创 2012-08-01 15:53:09 · 693 阅读 · 0 评论