Java中几种常用的设计模式

在Java的学习中比较常见的几种设计模式

尚学堂-马士兵老师大致讲的,总结一下

1.单例模式(单态模式):

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

      单例,多例,静态工厂设计,三者”密不可分“,明白即可。在工厂中出现单例设计模式,而不重新讲解。静态工厂与普通工厂有区别,两者冲突,只用一个。

2.普通工厂设计模式:

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

3.策略设计模式:(_Strategy)

4.事件设计模式【监听者】(Observer).有监听类,及其监听道的事件类型。

设计模式里面:解释器不重要。
装饰器简单。

追美眉的设计模式: 包含。
5.Brige(桥接)【送礼物】模式自学较为困难。使其集成关系脱离,慎用集成,以免子类太多,继承关系本身就是耦合高。
向2个维度上扩展,如例子上,一个维度上是按照具体类型来划分,另一种是按照类型来划分,导致子类层出不穷。
就应该即支持2个维度上的扩展。
核心:掌握到了这一点就行。用聚合代替继承,是一个很常用的手段。
桥接模式也不是用的很多,非常少用,就马士兵都没用过。2个维度排列组合就用桥接。
用组合代替继承。

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

7.Command(命令)言听计从。让他做各种格言的事情。doSomething(),将来还会扩展。
原始的23种设计模式:最开始时候,Command设计模式是:做菜单的Undo(历史记录),返回---撤销。
一个请求来,可以让任何对象来执行。所以才有上面的对所以操作都可以“撤销”!撤销画过的图,撤销写的字。
在所有的图形化的操作的撤销时候:实现Undo(),要用栈来记录所有执行过的操作,因为后执行先Undo。
Struts说自己实现的Command,完成某项功能命令。其实是:?

明明可以一次让Boy完成许多操作,所以Boy应该拥有许多Command的引用,即集合类:List。

8.State:用得也不多。一个类的动作因类的状态不同而有不同。
把if-else变成模式了

9.装饰设计模式:decorator。

mediator:【非常的简单】调停者设计模式。作为系统内部来调停。中介者,顾问。设计模式版的坦克大战里面有。





  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值