模板设计模式,错误处理,多线程

回调,模板设计模式,面向接口编程,封装变化几个概念的一致性。

回调的时候,一般把类作为参数,这个类一般设计为接口,接口的命名为XXcallback

在这个接口中,可以有以下选择
第一种,按照面向接口的思路,对变化进行封装,采用策略的设计模式,在外部单独有一个接口定义,然后在定义一个具体的类实现这个接口。
在使用的时候,直接将该父类的接口,更换为已经实现好的类,就可以了。

存在的问题是,传递参数的时候,如果在client需要将一些参数发送给外部定义的接口,在该接口中,对这些参数进行处理。那么就需要在实现类中,在构造函数中传人该参数,且有private 该参数定义。

我感觉因为在方法参数中传递类,一般不采用模板的子类来实现。


第二种方式。采用匿名类的方式。仍然有一个外部接口定义。及一个模板类(在方法上定义了该外部接口),在client端引用该模板类的时候,采用匿名类的方式来实现。这种方式的好处是在匿名类中,可以使用在模板类(client端)中的参数。这样书写的时候,就不要一个单独的外部类已经在外部类中采用构造函数传递参数了。

spring的检查性异常转为运行期异常
在java中的api,有一部分定义抛出异常(如连接物理资源等)。也有一部分是不抛异常(如string计算)
在应用这些有异常定义的java类时候,就需要catch这些检查性异常。如何规避这个很多不需要的catch动作,一般采用的方式如下。
在spring中,对dao的引用采用了xxdao extend XXtemplete。在该templete中,有应用java api。在该catch中,有throw新的dataaccessExcetption 。因为该类以及处理了catch,他的上层就不会在进行处理了。上层只会针对感兴趣的运行期异常进行处理就可以了。
这样就需要一个中间层(templete层,一个自己定义的运行期的异常,以及一系列子异常,在中间层中进行抛出)。

多线程,多实例,Tomcat中的多线程,多实例,ThreadLocal

根据目前理解,多线程应该就是线程类的多个实例。这个多实例是操作系统jvm进程来进行访问的。一般的多实例估计必须要与某一个线程关联起来,都在在一个线程中,多实例应该是没有意义的。因为在一个线程中,是顺序执行的。只有在不同线程,才用可能分时执行。


问题:A类,B,C类分别继承于A类。那么A中的实例变量在BC中会如何。
答:如果BC单独实例化之后,父类模板中的变量会在BC中单独持有。如果A类也要有,那么直接对A类进行实例化就可以。所以,如果ABC都要进行实例化,那么A中的实例变量会在3个类中都存在,不会产生冲突。类中写的方式,仅仅在A中,是为了人写的省事,但是在编译器中,是在不同的类中有不同的实例的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值