Monthly Archive: 一月 2016

常用设计模式「Design Pattern」示例

设计模式「Design Pattern」可谓软件设计思想精髓的集中体现,是前人在大量实践中的总结和提炼,网络上相关的资料多如牛毛,好像没有炒冷饭的必要,但这不代表自己能够吸收并且在工程项目中灵活运用,还是自己总结来的比较实在。


在总结常用的设计模式之前,有必要对设计模式的几条基本原则进行充分的理解:
1. 开闭原则(Open Close Principle)
简单说就是「对修改关闭,对扩展开放」,怎么理解:在设计项目的一个模块(比如根据账户类别查询账户信息)时,假设我们已经实现根据「往来户」和「内部户」这两种账户类别查询账户信息,后续当我们新增账户类别时,我们并不希望去修改原有的业务逻辑,而是针对新增的账户类别查询子模块实现热插拔的效果。我们往往需要借助接口和抽象类来实现这样的效果。
2. 里氏代换原则(Liskov Substitution Principle)
里式代换原则是面向对象语言设计的基本原则之一,是软件功能单元复用的基础。简单的说,该原则表明了:「所有基类可以出现的地方,子类一定可以出现」。是对抽象的「开闭原则」的具体实现,在之后模式的总结中,会大量看到里式替换原则的运用。
3. 依赖倒转原则(Dependence Inversion Principle)
该原则更像是一种方法论,核心内容是:针对接口编程,依赖于抽象的接口而不是具体的实现。
4. 接口隔离原则(Interface Segregation Principle)
该原则提倡我们使用多个接口,而不是单个,以便于接口与接口之间的隔离,降低接口之间的耦合度。
5. 迪米特法则(最少知道原则)(Demeter Principle)
一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。
6. 合成复用原则(Composite Reuse Principle)
尽量使用合成/聚合的方式,而不是继承。


在介绍完设计模式的六条基本原则之后,下面来具体说说常用 (更多…)

我们就这么希望着

一般无事可干之时,都会写点文字聊以自慰,用来唤醒沉睡的思想,人不思考,便觉得生死其实是一回事,总是会联想到一些不好的结果。

又及人活的舒服了便也出现各种怪毛病,要不得,那是在虚度本就少的可怜的那点时光,年轻人的狂妄等到年岁渐长之后便觉得是一种笑话,咋能跟自然规律对抗,而可笑的是我们从来没有意识到这一点。

生在中国当下这个巨变的时代是好是坏呢,看的稍微明白的人都活的自由自在,看不明白的人一直都在瞎凑个热闹,我们每天都在消化着一个个新鲜的笑话,因而据我观察我们用来深刻思考的时间是非常少的,时间都用来制造和传播笑话了。

所以感觉可伶,如何在这样的大环境下提升和充实自己就成了一件不得不去思考的问题,我们缺乏开放创新的氛围,在错误价值观的指导下,人活出人样会强人所难,只能靠唤醒自我意识达到曲线就己。

但活着总是要有点希望和盼头,我们也是这么希望着。

在new对象中如何使用spring容器中的bean

实际项目开发过程中可能会遇到在new出来的实例对象中使用spring容器中的bean,这个时候我们可以通过以下方法取得(方法不止这一种)。

我们通过实现ApplicationContextAware接口中的setApplicationContext方法来设置Spring容器的上下文环境,同时在VacctSpringContext实现类中增加一个get方法,使得我们有能力得到spring的上下文环境,就像下面这样:

同时在ApplicationContext.xml文件中增加一条配置:

为了在后面使用过程中更方便一点,再提供一个工厂方法,像下面这样:

在需要用到spring容器中的bean时,通过下面这条语句就能获得: