今天学习设计模式了,按照《大话设计模式》的内容,学习了三个设计模式,分别是单例模式,适配器模式,还有策略模式。明确了这个基本概念还有基本用法,应用场景,以及一些优缺点。
在最后改进代码的时候发现自己有两个技术盲点,第一个就是反射这个基本工具类的使用,不怎么熟悉,需要加强学习。通过一个练习还有理论的抽象,应该可以学会。第二个就是对xml文件的操作,完全的没有概念,这个更加要加强,据我所知,有一个xml数据库,而且dataset这个数据类型也是xml形势存储的,可见对xml的操作是基本的知识,应该找机会了解掌握它。
现在回顾下今天的编程心得,算是复习一遍吧!
上午找了一些资料,主要是关于怎么提高职业技能的,具体点就是Hibernate方面的,数据结构方面的,代码重构和优化方面的,打算让##%给我网购,最后拖到晚上自己回家订购,然后是协助%¥#对周一我修改的一个报表进行了调试,主要问题出在工具上,svn对文件冲突的处理不太熟悉,最后是通过重写代码的方式修改完的,测试调整了两个问题,第一个是一个关闭按钮不好使了,第二个是对子任务选择,功能按钮不可用。总的来说,上午是对周一工作的一个质量调整。
下午写了三个设计模式的例子,理解了基本的概念,使用场景,还有写了一个例子,以及对模式优缺点的思考,下面再复习下。
1.单例模式:
- 保证一个类只有一个实例,并且提供一个访问它的全局访问点。
- 一个系统或者子系统需要共享一个对象的时候,如hibernate的SessionFactory.
- 基本用法是一个例子,分成懒汉和饿汉方式的用法,这里略去。
- 静态初始化比较消耗资源,但是饿汉式要考略线程安全问题,这里使用双重锁定解决了。
2.适配器模式:
- 将一个类的接口转换成客户希望的另外一个接口,使得由于接口不兼容不能在一起工作的类可以在一起工作。
- 总的来说是在双方都不太容易修改的时候使用,具体点就是,第一,软件维护的后期,产品的功能类似,但是接口不一致,可以用这个模式统一接口,第二,软件设计的时候考略使用第三方插件,第三,比较常见的DataAdapter就是一个数据适配器。
- 模拟一个姚明NBA打球的例子。
- 总的来说没有什么缺点,单是在设计初期,接口设计应该尽量的广泛和合理。
3.策略模式:
- 定义了算法家族,分别封装起来,使他们可以相互替代,这个模式让算法的变化不会影响到算法的用户。
- 不同时候使用不同规则的时候,考虑使用策略模式。
- 商场收银实例
- 有一个判断分支在里面,可以结合简单工厂还有反射优化。
有点小感冒,很遗憾刚开始的时候没有防治好,现在还咳个不停,软件设计也一样,应该提前发现错误还有缺陷。