
设计模式
文章平均质量分 66
iteye_11864
这个作者很懒,什么都没留下…
展开
-
单例模式
场景和问题(比如:数据库连接池,系统参数配置,Java API 中的 Runtime, Calendar ... , 配置文件的读取类)1)解决方案本质-控制实例的数量2)体现的一些思想-延迟装载(需要时才引用加载)-缓存--把数据放到缓存中,调用时先从缓存中查找,如果有直接取出,如没有到数据库中查,然后放到内存中。3)实现思路-不能再外部new 对象, 如...原创 2011-06-30 11:43:33 · 81 阅读 · 0 评论 -
系统如何划分模块
11.4 系统分析需求确定之后需要对系统进行整体分析和设计。这包括系统功能的描述、对功能模块的划分和对系统流程的分析。下面首先对系统功能进行描述。11.4.1 系统功能模块划分模块分析是描述系统需求的一个过程,需要将需求分析中的感性描述进行抽象,提取出要实现的功能,这是整个系统开发的一个关键过程。分析的根本目的是在开发者和提出需求的人之间建立一种理解和沟通的机制。因此,...原创 2012-04-10 15:47:51 · 2628 阅读 · 0 评论 -
OO系统分析员之路--什么是用例
用例是什么?其原始英文是usecase,直译过来就成了用例。这也是一个比较贴切的叫法了,从字面的直接理解就是使用的例子。另一种比较流行的定义是用例就是与使用者(actor)交互的,并且给使用者提供可观测的有意义的结果的一系列活动的集合。这个定义还是比较费解的,笔者在众多应聘者中发现很多使用用例来做需求的系统分析员,有的已经使用了两年以上,但仍不能把握用例的本质,虽然他们号称精通UML。...原创 2012-04-10 15:45:03 · 94 阅读 · 0 评论 -
java工厂模式三种
适用场合:7.3 工厂模式的适用场合创建新对象最简单的办法是使用new关键字和具体类。只有在某些场合下,创建和维护对象工厂所带来的额外复杂性才是物有所值。本节概括了这些场合。7.3.1 动态实现如果需要像前面自行车的例子一样,创建一些用不同方式实现同一接口的对象,那么可以使用一个工厂方法或简单工厂对象来简化选择实现的过程。这种选择可以是明确进行的也可以是隐含的。前者如自...原创 2011-09-28 17:21:02 · 447 阅读 · 0 评论 -
设计模式之六大原则——依赖倒置原则(DIP)
依赖倒置原则(Dependence Inversion Principle,DIP)的原始定义: •高层模块不应该依赖底层模块,两者都应该依赖其抽象; •抽象不应该依赖细节; •细节应该依赖抽象。 依赖倒置原则在Java语言中的表现是:•模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或者抽象类产生的; •接口或抽象类不依赖于实...原创 2011-09-19 16:18:40 · 122 阅读 · 0 评论 -
设计模式之六大原则——单一职责原则(SRP)
定义:应该有且仅有一个原因引起类的变更。There should never be more than one reason for a class to change. 优点:1、类的复杂性降低,实现什么职责都有清晰明确的定义;2、可读性提高,复杂性减低,可读性当然提高;3、可维护性提高,可读性提高,可维护性当然提高;4、变更引起的...原创 2011-09-19 16:15:01 · 136 阅读 · 0 评论 -
设计模式之六大原则——里氏替换原则(LSP)
里氏替换原则(Liskov Substitution Principel)是解决继承带来的问题。 继承的优点:•代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性; •提高代码的重用性; •子类可以形似父类,但又异于父类; •提高代码的可扩展性; •提高产品或项目的开放性。 继承的缺点:•继承是侵入性的,只要继承就必须拥有父类的所有属性...原创 2011-09-19 16:11:19 · 100 阅读 · 0 评论 -
代理模式
一.动态代理原创 2011-08-02 15:40:13 · 79 阅读 · 0 评论 -
AOP
aop 面向切面编程, 把一个通用的方法提出,通过配置文件的配置,织入到其他方法中,可以在方法前后调用此切面方法spring中的aop是方法的横切问题使用场合:1)一般不涉及业务的,比如:日志功能2)JoinPoint 织入的方法的参数, 能得到某个被干预方法的参数changeObj(JoinPoint joinPoint){ Object[] args = join...原创 2011-08-02 15:18:58 · 88 阅读 · 0 评论 -
装饰模式
public class Test { /** * 1) * Decorator模式应用的要点在于解决“主体类在多个方向上的扩展功能”------是为“装饰”的含义。 * 通过采用组合、而非继承的手法,Decorator模式实现了在运行时动态地扩展对象功能的能力, * 而且可以根据需要扩展多个功能。避免了单独使用继承带来的“灵活性差"和"多子类衍生问题"。...原创 2011-06-30 18:39:12 · 85 阅读 · 0 评论 -
模块分解原理的探索
在软件高层设计中,如何分解模块是首要考虑的问题。目前业界公认模块划分要按照“高内聚,低耦合”的原则来进行,那么如何划分才能满足“高内聚,低耦合”呢?下面来对模块分解原理方面进行一些探索,有考虑不周和不成熟之处还请大家不吝指正。模块是按功能来分解的吗?许多人可能有过经验,面对一堆功能性需求,多个不同的需求可能要放到同一个模块里,而某个需求又需要分解到多个模块里去实现。比如一个词典软件(类...原创 2012-04-10 16:09:27 · 120 阅读 · 0 评论