上次我们谈了MVC,而之前我们学习过三层,那么我们不禁就要问,他们说的是一回事吗,他们有什么联系吗?
三层架构(3-tier application)通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。
1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的...
分类:
Web程序 时间:
2014-12-21 22:16:04
阅读次数:
206
Spring的两个很重要的功能ioc和aop
依赖反转:依赖对象的获得被反转;许多非凡的应用都是由两个或多个类通过彼此的合作来上线业务逻辑,这使得每个对象都需要与其他对象合作,也就是说
一个对象获得其他对象的引用,这个被引用的对象就是被引用其的依赖,如果这个获取过程要考自身实现,那么很自然的这个将导致代码的高度耦合,并且难以
测试
在面向对象系统中,对象封装成数据...
分类:
编程语言 时间:
2014-12-21 15:22:46
阅读次数:
187
历史背景开发中常常因为方便,把状态标志都写到dom节点中,也就是HTMLElement,缺点:循环引用直接暴露数据,安全性?增加一堆的自定义属性标签,对浏览器来说是没意义的取数据的时候要对HTML节点做操作根本目的:使用一种低耦合的方式让DOM和缓存数据能够联系起来jQuery现在支持两种:?$("...
分类:
Web程序 时间:
2014-12-21 12:41:55
阅读次数:
206
扩展性是指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力。设计网站可扩展架构的核心思想是模块化,并在此基础上,降低模块间的耦合性,提供模块的复用性。模块通过分布式部署,独立的模块部署在独立的服务器上(集群)从物理上分离模块之间的耦合关系。 模块分布式部署以后具体聚合方式主要有分布式消息....
分类:
Web程序 时间:
2014-12-19 18:59:36
阅读次数:
167
如果你直接访问一个字段,你就会和这个字段直接的耦合关系变得笨拙。也就是说当这个字段权限更改,或者名称更改之后你的客户端代码都需要做相应的改变,此时你可以为这个字段建立设值和取值函数并且只以这些函数来访问字段。自古以来,面向对象关于字段访问就存在两个派系,其中一个派系认为,如果在该字段所在的类中,你就...
分类:
其他好文 时间:
2014-12-19 12:52:34
阅读次数:
167
3.2.“好莱坞原则”看了前面关于依赖注入概念的描述,我们来提炼出依赖注入的核心思想。如果说传统的组件间耦合方式,例如new、工厂模式等,是一种由开发者主动去构建依赖对象的话,那么依赖注入模式则是其反向的,即被动地等待别人做好一个依赖对象提供给我。在美国好莱坞众多电影工厂在寻找演员的时候通常奉行着这...
分类:
其他好文 时间:
2014-12-19 11:58:27
阅读次数:
162
iOS8之后用UIAlertController代替了UIAlertView,所以每次有需要弹窗的时候,都需要先判断系统,最近在做的项目中弹窗较多,如果每次都判断,真是太麻烦了,索性对UIAlertController和UIAlertView进行的封装了,封装在一个工具类中,在工具类中就对系统进行判断,然后在你需要弹窗的界面直接调用这个工具类的方法就可以了,减少了代码的耦合.
这个工具类其实也封...
分类:
其他好文 时间:
2014-12-18 17:03:21
阅读次数:
170
高通新的camera驱动架构设计发生了一些变化,借用互联网上常用的一种结构,大致的原理如此:将camera的所有功能划分为不同的模块,让模块自己来决定自己的事情(高内聚,低耦合),模块需要有统一的接口和格式。模块中有端口,通过端口把模块连接起来,又把模块挂在总线上。每一个端口的连接就是一个流,...
分类:
其他好文 时间:
2014-12-18 16:49:17
阅读次数:
245
1IoC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。图1:软件系统中耦合的对象 如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针、分针和秒针顺时针旋转,从而在表盘上产生正确...
分类:
其他好文 时间:
2014-12-18 09:07:47
阅读次数:
212
观察者模式(observer)之委托(delegate) c#简单例子
几个要点:模式使目标与观察都之间的依赖关系达到松耦合、通知会自动传播
例子:玩家击中敌人后发生一系列变化:发后爆炸、敌人少1个....
namespace adapterpattern
{
public partial class observerDelegateForm : Form
{
...