您的位置:首页 > 其它

常用的几种设计模式解析

2014-03-09 14:57 387 查看

1 单例模式(单态模式)

在程序运行过程中只有几个类或是只有一个类,达到“单例模式”。

无论外部类调用多少次“构造”,内存中只是分配一次实例化的对象,达到单例模式。
外部不能创建对象,所以必须在原来内部创建对象,以备外部调用。
由于外面没有创建对象的情况下,只能返回static 方法,故返回创建的对象的方法必须是static类型,而静态方法只能访问静态成员变量,故实例化的对象类型必须是static类型。

2 普通工厂设计模式

生产的东西交给工厂。使其脱离耦合度。
普通工厂:可以扩展产品的,(扩展产品工厂),若扩充产品系列就麻烦那,会导致工厂类泛滥。
抽象工厂:不适于扩展新的产品品种,那将改动很多,改动抽象工厂接口,新增功能,和具体工厂的功能。
Spring 的Bean工厂。
任意定制交通工具类型(也不是任意,是某子类)。
任意生产过程方法:为了统一写法,必须使用抽象(交通工具)工厂。
抽象工厂:换肤的软件-整体的风格都变化了,按钮、菜单。

3 策略设计模式

策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。

4 观察者模式

观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。

5 适配器模式(Adapter)

将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

J JAVA IO包 的InputStreamReader 就是适配,一边是InputStream,一边是Reader,来个InputStreamReader转接。
设计模式的区分在于语意,而不是语法。充电器的电压。一边一个接口,另一边是另外一个接口,彼此不相容,就适配器。
其中JDBC-ODBC就是适配器,java要访问ODBC,但是不能直接访问,中间通过JDBC来访问就解决了问题,JDBC一边连接JAVA,一边连接ODBC.这就是
JDBC-ODBC桥。有时候和代理区分不是明显,但是这只是语义上的区分。

6 装饰模式(decorator)

Decorator装饰模式是一种结构型模式,它主要是解决:“过度地使用了继承来扩展对象的功能”,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性;并且随着子 类的增多(扩展功能的增多),各种子类的组合(扩展功能的组合)会导致更多子类的膨胀(多继承)。继承为类型引入的静态特质的意思是说以继承的方式使某一 类型要获得功能是在编译时。所谓静态,是指在编译时;动态,是指在运行时。

概述:动态的给一个对象添加一些额外的职责。就增加功能而言,Decorator模式比生成子类更为灵活。

7 代理模式

控制其他对象对该对象的访问,可以理解为你一次需要去做很多复杂的操作,但是有一个代理者,可以帮你完成所有的操作。这样你可以直接访问代理者,不就简化的程序。

大管家。对外面,【例如去政府办种种事,如果有人代劳就好了】相互之间不再直接访问,而是间接通过大管家的引用访问。
以前用得很多,SessionFacade。EJB里面。用一个Action来处理所有的Action,如删除,添加等等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: