今天和大家聊聊软件的架构风格。所谓的软件架构风格,就是一种可以重复利用的软件结构模式,其最大的作用是用相同的结构解决某一特殊领域的问题。如著名的三层B/S架构设计,其主要目的就是为了解决Web系统服务端与客户端的高耦合与维护成本高的问题。使用B/S三层架构模式,实现..
分类:
其他好文 时间:
2014-10-08 18:16:16
阅读次数:
271
设计模式是一套理论与经验,它可以提高代码的可重用性、可维护性。比如需求经常变,实现模块之间的松耦合就可以方便维护。
依赖倒置原则
依赖倒置原则,简单说就是面向接口编程。可以减少类间的耦合性,有利于并行开发。
设想这样一个场景:甲负责汽车类的建造,乙负责司机类的建造。在甲没有完成的情况下,乙是不能完全地编写代码的,缺少汽车类,编译器根本就不会让你通过!
两个类之间有依赖关系,只要制定...
分类:
其他好文 时间:
2014-10-08 13:27:15
阅读次数:
257
面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。1.依赖(Dependence)描述:可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是B类的变化会影响到A。表现在代码层面,类A当...
分类:
其他好文 时间:
2014-10-07 17:30:23
阅读次数:
166
1.Category和Extension都是用来给已定义的类增加新的内容的。2.Category和原有类的耦合更低一些,声明和实现都可以写在单独的文件里。但是只能为已定义类增加Method,而不能加入成员变量。3.Extension耦合比较高,声明可以单独写,但是实现必须写在原有类的@impleme...
分类:
其他好文 时间:
2014-10-07 01:24:12
阅读次数:
229
为避免与Servlet API耦合在一起,方便Action类做单元测试.Struts2对HttpServletRequest、HttpSession、ServletContext进行了封装,构造了三个Map对象来替代这三种对象。注意,这三个对象与Servlet API中的三个对象是相同的。即,在Ac...
分类:
移动开发 时间:
2014-10-06 18:18:40
阅读次数:
198
就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化产生时,设计会遭受到意向不到的破坏。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。
分类:
其他好文 时间:
2014-10-06 16:04:00
阅读次数:
118
背景:做一个商场收银软件收费情形:正常收费、打八折、打七折、打五折策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少各种算法类与使用算法类之间的耦合。策略模式的Strategy类参差为Context定义了一系列的可...
分类:
其他好文 时间:
2014-10-06 15:47:00
阅读次数:
155
外观模式(Facade):是为了解决类与类之间的依赖关系的,像spring一样,可以将类与类之间的关系配置到配置文件中,而外观模式就是将他们的
关系放在一个Facade类中,降低了类与类之间的耦合度,该模式中没有涉及到接口。...
分类:
编程语言 时间:
2014-10-05 22:52:39
阅读次数:
258
1.什么是AMQP协议 即高级消息队列协议,规范客户端与消息中间件服务器之间的通信,并能相互操作。2.AMQP协议的作用 降低应用程序之间的耦合度,这样不同应用之间的集成的难度将变得更小,并开发出更有用的应用程序 。3.AMQP协议的模型 包含三个成员:Exchange,Message Queue,...
分类:
其他好文 时间:
2014-10-05 18:51:28
阅读次数:
230
1IoC理论的背景 我们都知道,在採用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,全部的对象通过彼此的合作,终于实现系统的业务逻辑。图1:软件系统中耦合的对象 假设我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针、分针和秒针顺时针旋转,从而在表盘上产生正确...
分类:
其他好文 时间:
2014-10-05 18:48:08
阅读次数:
261