我在java中碰到的设计模式

  Filter体现了一个模式“责任链模式”,Servlet体现了一个模式“模板方法”

 

还有java中的int 存了一些常用的128个值 ,这也是一个享元模式的应用。

83.  就像你买电视一样,你现在面对的不是电视,你面对的是一个集团,你对集团说我要一台电视。


84.  我要一台电视,你把一台电视给我就行了,我不会去管怎么生产的。


85.  其实工厂的作用就是创建产品,把产品的创建过程给隐藏了,如果没有工厂你自己要面对产品,这个类new的过程就是创建,你自己new你肯定要知道你才能new,你要知道的话,你对他就有依赖了,有了工厂你就不知道他怎么new的了。


86.  工厂是稳定的,就像你如果要做产品,你不可能依赖人,公司也不可能依赖一个人,人是不稳定的,我做产品,肯定找公司,找人的话,说不给我做了,就不给我做了。


87.  我们来面对工厂,工厂模式其实就是隐藏产品创建细节,比如说型号一的电视机淘汰了,要升级了,你到工厂里面去改,我拿到的我不管了,你升级就升级吧。


88.  工厂只有两种,工厂方法和抽象工厂,其他的都是不标准的,变种,跟病毒一样。


89.  通俗地说一下,模式其实就是加入了一个间接层
加入间接层,我对他就没有依赖了。

90.  我要什么型号的电视,扔到工厂里面去,你给我创建了,


91.  开闭原则,对扩展是开放的,对修改是关闭的,这是一种最最理想的状态。


92.  缺点:只能创建单一产品系列,其实这也并不是说是什么缺点,只是他的一个适应场景。就好像我们以前说的model1 model2我们不能就说model1就差,电视就是一个系列,如果你现在加入一个笔记本电脑,他就创建不了了。


93.  is-a 我完全实现了你,并没有任何扩展
is-like-a 我实现了你,但我还扩展了,就像你的意思
has-a  持有对象的一个引用。


94.  里氏代换原则(LSP):任何类出现的地方,子类一定可以出现(is-a),这就是鼓励你用 完全实现的方式,而不是要你扩展。


95.  你看我们现在依赖于jdbc,依赖的是抽象,依赖他的接口,没有什么具体的实现 。我没写oracle的包,也没有写oracle的类。


96.  最好把接口里面的方法归一下类,如果你一个接口定义100个方法,如果一个方法有问题其它99可能就都不能用了,怎么办,分离成10个不就好了。


97.  其实接口隔离原则和迪米特法则说的是一个意思


98.  原则归原则,最后开发还是采用一个折中的方案来做,各自取得平衡就好了。


99.  不要为了模式而模式,为了原则而原则。


100. Dao设计模式,不属于Gof设计模式,属于j2ee设计模式,dao也是gof的一种特殊情况,是哪一种呢?策略模式,策略模式的意图就是可以替换,比如你去机场,你可以坐公交去,也可以打车去。


dao模式的意图,隐藏数据访问细节。

7.  利用反射和配置文件,结合工厂来搞就能达到最大的可重用性。


8.  在实际应用中,没有用标准的王勇画的那样的工厂图的方式来创建类的,其实没有多大意义。


9.  还不如直接把ItemDaoMySql配置到配置文件里,你还来个工厂 ,没有多大实际的意义。如果你要oracleDao我配进去就可以了啊。


10.  标准的GoF工厂方法模式,在实际中使用很少,因为工厂这一块是可以省略的,可以直接产品配置到配置文件中,标准的工厂方法模式图,主要便于我们理解模式,不应该生搬硬套的来使用它,不是说模式图怎么样,你就怎么用,你要真正理解透了,才能拿来用。

 

 

37.  servlet对应一种设计模式,模板方法模型,设计模式,重复强调可重复利用的解决方案。


38.  了解模板方法和servlet的关系。


40.  子类的调用行为不是由自己控制的,而是父类来管理了,这不就是控制反转嘛,也就说抽象方法它的调用不是由子类控制的,反转给父类控制其调用,这个称为控制方向反转。

 

17.  jndi他会以目录树的形式来管理对象,你看我们写连接池的时候,我也没写哥们你给我去找dbcp啊,我现在用dbcp,你没有这样声明吧,其实他就是一个工厂 ,什么叫工厂 呢?你可以这样理解,只要他隐藏产品创建细节,他就是一个工厂。这种工厂 不是那么绝对的一定要跟那个图一模一样,不是这样的,你要深层理解那个设计模式的话,他这个工厂就是隐藏产品创建细节。


18.  你只要拿到DataSource就可以了,你管他下面是什么呢?

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值