设计模式与软件架构
songzhi909
这个作者很懒,什么都没留下…
展开
-
Observer 观察者
在Java中通过Observable类和Observer接口实现了观察者模式。一个Observer对象监视着一个Observable对象的变化,当Observable对象发生变化时,Observer得到通知,就可以进行相应的工作。例如在文档/视图结构中,文档被修改了,视图就会得到通知。 java.util.Observable中有两个方法对Observer特别重要,一个是setC转载 2013-06-22 22:34:49 · 272 阅读 · 0 评论 -
简化DAO设计的思想
当应用中需要使用到上十张表时,DAO的维护变得日益困难,主要表现在这几个方面: 1)dao类的繁多,很多设计都是一个entity对应一个dao 2)dao接口需要维护的method庞大。 3)业务逻辑改变时,dao需要同时修改两个类文件(接口和实现类) 出于上述问题,有必要从新设计dao包。要求 1)减少dao类的数目,dao包暴露的接口稳定且易于扩展新的查询。 2)减转载 2013-06-22 22:29:39 · 830 阅读 · 0 评论 -
设计模式之Proxy(代理)
理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在实际应用中,可以如鱼得水,享受游刃有余的乐趣. 代理模式是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,Proxy是代理的意思,我们也许有代理服务器等概念,代理概念可以解释为:在出发点到目的地之间有一道中间层,意为代理. 设计模式中定义: 为其他对象提供一种代理以控制对这个对象的访问. 为转载 2013-06-22 22:31:21 · 255 阅读 · 0 评论 -
设计模式之Flyweight(享元)
模式定义: 避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类). 为什么使用? 面向对象语言的原则就是一切都是对象,但是如果真正使用起来,有时对象数可能显得很庞大,比如,字处理软件,如果以每个文字都作为一个对象,几千个字,对象数就是几千,无疑耗费内存,那么我们还是要"求同存异",找出这些对象群的共同点,设计一个元类,封装可以被共享的类,另外,还有一些特性是取决转载 2013-06-22 22:33:16 · 341 阅读 · 0 评论 -
从GOF的设计模式说起
设计模式对于做软件者来说是必修的内功之一,尤其现在面向对象已经成为主流的开发方法。掌握那些经过证实的面向对象的设计模式是学习和理解面向对象的绝佳途径,每一个模式都是面向对象最经典的应用。以前算法+数据结构=程序的时代已经一去不复返了,软件的复杂度越来越大,硬件水平的不断提到,也使得在一般的应用中性能的已不是主要的问题,算法在普通的应用中显得不像以前那么重要。而如何降低软件的复杂度,如何实现代码甚至转载 2013-06-22 22:27:40 · 393 阅读 · 0 评论 -
设计模式之Factory
厂模式定义:提供创建对象的接口. 为何使用? 工厂模式是我们最常用的模式了,著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。 为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑实用工厂模式转载 2013-06-22 22:30:42 · 222 阅读 · 0 评论 -
设计模式之Bridge(桥模式)
Bridge模式定义 : 将抽象和行为划分开来,各自独立,但能动态的结合。 任何事物对象都有抽象和行为之分,例如人,人是一种抽象,人分男人和女人等;人有行为,行为也有各种具体表现,所以,“人”与“人的行为”两个概念也反映了抽象和行为之分。 在面向对象设计的基本概念中,对象这个概念实际是由属性和行为两个部分组成的,属性我们可以认为是一种静止的,是一种抽象,一般情况下,行为是包含在一个对转载 2013-06-22 22:32:46 · 326 阅读 · 0 评论 -
设计模式之Command
Command模式是最让我疑惑的一个模式,我在阅读了很多代码后,才感觉隐约掌握其大概原理,我认为理解设计模式最主要是掌握起原理构造,这样才对自己实际编程有指导作用.Command模式实际上不是个很具体,规定很多的模式,正是这个灵活性,让人有些confuse. Command定义 n 将来自客户端的请求传入一个对象,无需了解这个请求激活的 动作或有关接受这个请求的处理细节。 这是转载 2013-06-22 22:33:54 · 230 阅读 · 0 评论 -
设计模式之Adapter(适配器)
适配器模式定义: 将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份. 为何使用? 我们经常碰到要将两个没有关系的类组合在一起使用,第一解决方案是:修改各自类的接口,但是如果我们没有源代码,或者,我们不愿意为了一个应用而修改各自的接口。 怎么办? 使用Adapter,在这两种接口之间创建一个混合接口(混血儿).转载 2013-06-22 22:32:20 · 212 阅读 · 0 评论