`
SunSteven
  • 浏览: 47452 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论
阅读更多
回调,模板设计模式,面向接口编程,封装变化几个概念的一致性。

回调的时候,一般把类作为参数,这个类一般设计为接口,接口的命名为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中,是为了人写的省事,但是在编译器中,是在不同的类中有不同的实例的。



分享到:
评论

相关推荐

    基于Freemarker模板技术的邮件发送模块设计

    采用javamail实现的通用邮件发送模块,邮件内容采用Freemarker技术实现,多线程实现邮件发送,观察者模式来定制邮件的错误处理,设计思路参考作者博客 http://blog.csdn.net/crazycoder2010/article/details/6629076

    Linux多线程服务端编程:使用muduo C++网络库

    《Linux多线程服务端编程:使用muduo C++网络库》主要讲述采用现代C++在x86-64 Linux上编写多线程TCP网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread。...

    二十三种设计模式【PDF版】

    设计模式之 Template(模板方法) 实际上向你介绍了为什么要使用 Java 抽象类,该模式原理简单,使用很普遍. 设计模式之 Strategy(策略) 不同算法各自封装,用户端可随意挑选需要的算法. 设计模式之 Chain of ...

    C++编程进阶与高级特性深入解析 构建强大可靠应用的全面指南 课程+课件

    我学会了如何通过设计模式和现代编程范式来构建可扩展、可维护的软件系统。课程提供了丰富的实例和项目,让我有机会实践这些概念,并深入了解如何进行性能优化和错误处理。我学到了很多关于多线程编程和并发性的知识...

    传智播客扫地僧视频讲义源码

    本教程共分为5个部分,第一部分是C语言提高部分,第二部分为C++基础部分,第三部分为C++进阶部分,第四部分为C、C++及数据结构基础部分,第五部分为C_C++与设计模式基础,内容非常详细. 第一部分 C语言提高部分目录...

    asp.net知识库

    2.0问题、错误解决办法 ASP.NET 2.0使用Web Part创建应用程序之二(共二) 体验 .net2.0 的优雅(2) -- ASP.net 主题和皮肤 NET2.0系列介绍(一).NET 2.0 中Web 应用程序主题的切换 ASP.NET 2.0 中Web 应用程序...

    C++编程思想(第2版 第2卷)

    解释多重继承问题的难点,展示RTTI的实际使用,描述了典型的设计模式及其实现,特别介绍被认为是标准C++下一版特征之一的多线程处理编程技术,并提供了最新的研究成果。本书适合作为高等院校计算机及相关专业的本科...

    MFC深入浅出带目录完整版(李久进chm版)

    而且,MFC提出了模块状态、线程状态、模块线程状态来支持多线程的编程设计和DLL的编程。 本书分别从使用MFC的角度和MFC内部设计及实现的角度讨论了上述内容,分析了MFC核心的设计和实现;然后,在此基础上,进一步...

    超级有影响力霸气的Java面试题大全文档

    与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...

    java面试800题

    volatile:volatile变量表示保证它必须是与主内存保持一致,它实际是""变量的同步"", 也就是说对于volatile变量的操作是原子型的,如用在long 或 double变量前,一般用于多线程编程。 abstract:抽象,必须重载,修饰...

    vc++ 应用源码包_1

    实现了自绘控件,云端控制主要在CnComm类多线程串口通讯库, camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种用于局域网下的CS模式的软件...

    vc++ 应用源码包_2

    实现了自绘控件,云端控制主要在CnComm类多线程串口通讯库, camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种用于局域网下的CS模式的软件...

    vc++ 应用源码包_6

    实现了自绘控件,云端控制主要在CnComm类多线程串口通讯库, camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种用于局域网下的CS模式的软件...

    vc++ 应用源码包_5

    实现了自绘控件,云端控制主要在CnComm类多线程串口通讯库, camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种用于局域网下的CS模式的软件...

    vc++ 应用源码包_3

    实现了自绘控件,云端控制主要在CnComm类多线程串口通讯库, camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种用于局域网下的CS模式的软件...

    vc++ 开发实例源码包

    实现了自绘控件,云端控制主要在CnComm类多线程串口通讯库, camerads-DirectShow使用示例 演示了摄像头的使用 CatListBoxDemo ListBox控件与其它控件阙套使用方法 CCAMS系统是一种用于局域网下的CS模式的软件...

    python入门到高级全栈工程师培训 第3期 附课件代码

    02 文件处理b模式 03 文件操作的其他方法 04 文件seek方法补充 05 迭代器协议和for循环工作机制 06 迭代器补充 07 三元运算,列表解析,生成器表达式 第19章 01 生成器函数 02 生成器函数的好处 03 母鸡下蛋的传说...

    ASP3《高级编程》(第一部分)

    4.3.4 Server对象的错误处理 118 4.3.5 获取Server对象的路径信息 125 4.3.6 使用Server对象格式化数据 127 4.4 小结 132 第5章 脚本运行期库对象 134 5.1 脚本对象的定义 134 5.1.1 不同类型的对象和组件 134...

Global site tag (gtag.js) - Google Analytics