1.简介依赖注入和控制反转,目的是为了使类与类之间解耦合,提高系统的可扩展性和可维护性,下面通过一个例子来引入这一概念。2.案例1)一般情况下的类耦合Main.javapublic class Main { public static void main(String[] args) { ...
分类:
编程语言 时间:
2014-07-23 15:25:07
阅读次数:
271
前言: kafka是linkedin开源的消息队列, 淘宝的metaq就是基于kafka而研发. 而消息队列作为一个分布式组件, 在服务解耦/异步化, 扮演非常重要的角色. 本系列主要研究kafka的思想和使用, 本文主要讲解kafka的一些基本概念和api的使用. *) 准备工作1) 配置ma.....
1. Reactor和Preactor模式
Reactor用于同步IO,Preactor用于异步IOReactor通常会和Connector模式一起使用,进一步解耦连接的建立与连接以后的逻辑
2. Reactor模式中的主要角色
2.1. Reactor
Reactor是IO事件的派发者。
2.2. Acceptor
Acceptor接受client连接,建立对...
分类:
其他好文 时间:
2014-07-22 00:30:34
阅读次数:
391
在软件世界分层的思想无处不在
主要是为了提高软件系统的维护性,扩展性,复用性和解耦等
软件的三层构架是一种最基本的分层思想的体现
结构图大体如下:
如此一来,开发人员可以只关注其中一层,而无需关心下一层是如何实现的
但是最基本的三层构架在软件系统中很明显是不够用的
因为它带来优点的同时也带着许多缺点,比如耦合性高,经常出现修改某一层的代码另外一层也要随之大幅度整顿
而且当需求...
分类:
编程语言 时间:
2014-07-21 22:32:27
阅读次数:
251
是时候给这些网页来点动态特性了——用AngularJS!我们这里为后面要加入的控制器添加了一个测试。一个应用的代码架构有很多种。对于AngularJS应用,我们鼓励使用模型-视图-控制器(MVC)模式解耦代码和分离关注点。考虑到这一点,我们用AngularJS来为我们的应用添加一些模型、视图和控制器...
分类:
Web程序 时间:
2014-07-21 10:15:11
阅读次数:
223
1.名词: 1.任务的执行与任务的提交解耦 2.任务的执行策略-可中断,取消2.线程封闭机制: 针对单线程池而言,提高任务执行的速度,但是无需锁定3.饥饿死锁: 任务长期得不到执行,其实就是形成闭合的环路导致,共享资源互相锁定导致4.超时机制: 指定时间任务完不成,则重新加入的线程的执行队...
分类:
编程语言 时间:
2014-07-18 23:16:32
阅读次数:
250
实际上适配器模式是用于解耦。设想一下我们的程序模块A在与模块B打交道时,需要在许多地方多次使用B中某个类的方法,而负责开发B的程序猿Tom还未完全实现该类,会随时更改该类中的方法,那么当Tom在修改时,负责A的攻城狮Jerry不得不进行苦逼的修改。聪明的项目经理Dabao想出了好方法——适配器模式,于是在Tom和Jerry之间进行了如下设计:
///
/// B中目前只定义了英雄KA...
.NET泛型或许是借鉴于C++泛型模版,借助它可以实现对类型的抽象化、泛型处理,实现了类型和方法之间的解耦。一个最经典的运用是在三层架构中,针对不同的领域模型,在基接口、基类中实现针对各个领域模型的泛型处理。本篇主要包括:■ 为什么需要泛型 ※ 不用泛型 ※ 使用泛型 ※ 泛型的运行时本质■ 泛型语...
分类:
Web程序 时间:
2014-07-18 20:36:22
阅读次数:
328
Event 事件事件是为了解耦...注册事件使用"on add"添加属性,注册事件 使用on方法注册事件. 第三个参数$data是监听函数使用的参数, 第四个$append参数设置为false则把改事件的方法给添加到最前面,会先触发 事件种类: 匿名函数:function($event){} 对象方...
分类:
其他好文 时间:
2014-07-18 00:14:03
阅读次数:
774
实际上适配器模式是用于解耦。设想一下我们的程序模块A在与模块B打交道时,需要在许多地方多次使用B中某个类的方法,而负责开发B的程序猿Tom还未完全实现该类,会随时更改该类中的方法,那么当Tom在修改时,负责A的攻城狮Jerry不得不进行苦逼的修改。聪明的项目经理Dabao想出了好方法——适配器模式,...