petshop消息处理之理解
大家都知道,在petshop4.0中,使用了消息处理订单数据,以实现数据的异步插入,提高系统的数据库访问性能,可是我看了半天,也没看懂这个异步是怎么实现的,无奈之下,只得再细细的读petshop4.0 详解之三(PetShop数据访问层之消息处理)(转帖) ,后来才有了自己的一下想法,也不知道对不对,先写下来:
首先,在BLL中,Category.cs,Inventory.cs,Item.cs,Product.cs这些类处理数据都是使用的PetShop.DALFactory.DataAccess.Create...,是直接将数据插入数据库,没有用到消息队列。只有Order.cs中涉及到了消息的使用,看下面的代码:
1 private static readonly PetShop.IBLLStrategy.IOrderStrategy orderInsertStrategy = LoadInsertStrategy();
2
3 private static PetShop.IBLLStrategy.IOrderStrategy LoadInsertStrategy() {
4
5 // Look up which strategy to use from config file
6 string path = ConfigurationManager.AppSettings["OrderStrategyAssembly"];
7 string className = ConfigurationManager.AppSettings["OrderStrategyClass"];
8
9 // Using the evidence given in the config file load the appropriate assembly and class
10 return (PetShop.IBLLStrategy.IOrderStrategy)Assembly.Load(path).CreateInstance(className);
11 }
12
petshop4.0 详解之三(PetShop数据访问层之消息处理)(转帖) 里面讲到这段代码用到什么“策略模式”,
我的理解就是IBLLStrategy这个项目吧,这个项目里定义了一个接口IOrderStrategy,BLL中的OrderAsynchronous.cs(异步)和OrderSynchronous.cs(同步)都继承了这个接口,也都实现了接口里的public void Insert(PetShop.Model.OrderInfo order)方法,不同的是一个是异步,一个是直接PetShop.DALFactory.DataAccess.Create...。而在BLL中的Order.cs中,具体是使用的异步还是同步,就决定于上面的代码了。而上面的代码中在创建PetShop.IBLLStrategy.IOrderStrategy接口时,读取了配置文件,所以真正决定是使用异步还是同步方式的是配置文件 ,如果要使用异步,则创建OrderAsynchronous.cs类,否则是OrderSynchronous.cs类。
转载于:https://www.cnblogs.com/min10/archive/2008/10/27/1320567.html
petshop消息处理之理解相关推荐
- 通过宠物商店理解java面向对象
前言:本篇博客,适合刚刚学完java基础语法的但是,对于面向对象,理解不够深刻的读者,本文通过经典的宠物商店,来让读者深刻的理解,面向对象,IS-A,HAS-A法则.本文不仅仅是简单的用java来模拟 ...
- 录音播放系统(实现pcm转码mp3,wav)
本文介绍了基于waveX低级音频API采集音频,然后播放的技术,也支持实时的播放.对于将录音和播放分开的做法原因是为了保存pcm文件(未经压缩过的音频文件), 然后转码wav和mp3格式. PCM(P ...
- 深入理解Android消息处理系统——Looper、Handler、Thread
引用自:http://my.unix-center.net/~Simon_fu/?p=652 熟悉Windows编程的朋友可能知道Windows程序是消息驱动的,并且有全局的消息循环系统.而Andro ...
- Android异步消息处理机制完全解析,带你从源码的角度彻底理解
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9991569 之前也是由于周末通宵看TI3比赛,一直没找到时间写博客,导致已经有好久 ...
- android r.java 原理,深入理解Android消息处理系统原理
Android应用程序也是消息驱动的,按道理来说也应该提供消息循环机制.实际上谷歌参考了Windows的消息循环机制,也在Android系统中实现了消息循环机制. Android通过Looper.Ha ...
- petshop4.0 详解之三(PetShop数据访问层之消息处理)
在进行系统设计时,除了对安全.事务等问题给与足够的重视外,性能也是一个不可避免的问题所在,尤其是一个B/S结构的软件系统,必须充分地考虑访问量.数据流量.服务器负荷的问题.解决性能的瓶颈,除了对硬件系 ...
- petshop4.0 详解之三(PetShop数据访问层之消息处理) [转]
三.PetShop数据访问层之消息处理 在进行系统设计时,除了对安全.事务等问题给与足够的重视外,性能也是一个不可避免的问题所在,尤其是一个B/S结构的软件系统,必须充分地考虑访问量.数据流量.服务器 ...
- [学习总结]6、Android异步消息处理机制完全解析,带你从源码的角度彻底理解
开始进入正题,我们都知道,Android UI是线程不安全的,如果在子线程中尝试进行UI操作,程序就有可能会崩溃.相信大家在日常的工作当中都会经常遇到这个问题,解决的方案应该也是早已烂熟于心,即创建一 ...
- [wayfarer]PetShop数据访问层之消息处理
原文地址: http://www.cnblogs.com/wayfarer/archive/2006/09/06/496207.html <解剖PetShop>系列之三 三.PetShop ...
最新文章
- 用XCA(X Certificate and key management)可视化程序管理SSL 证书(2)--生成SSL证书请求...
- 2015年第六届蓝桥杯 - 省赛 - C/C++大学C组 - A. 隔行变色
- CPU为什么是方形而不是圆形的?
- python 组合数据_python-组合数据类
- 中国双接口芯片卡市场趋势报告、技术动态创新及市场预测
- 云计算:大数据时代的系统工程
- 一等奖60万,首届“唱圆”杯AI翻译大赛报名中
- 大数据分析技术有哪些类型
- 使用Excel导出.xml文件
- PowerBuilder9.0窗口最小化没显示了
- 跑路潮来临:解散社群,深夜遁逃,卷走百亿资金
- 电商一定是一元化结构
- 网页前端培训(JavaScript)
- 基于react hook的砸金蛋动画
- 华中电网项目日志:Rational version 7.0 技术会议纪要
- 怎样在Word添加页码?经验干货!word如何插入页码?
- 【Linux】一步一步学Linux——VMware Workstation 15 Pro安装图解教程(06)
- JS事件详解和js事件委托
- 苹果微软小米华为,创新四重奏?
- ICCV 2021审稿结果出炉,有人已总结出了一份Rebuttal写作指南
热门文章
- java对象怎么创建_Java对象是怎么创建的(通过对象的创建,了解JVM内存结构)...
- vue 插入dom_vue内部复用问题以及虚拟dom的更新
- 计算机录入的课程标准,《计算机录入技术》课程标准.doc
- mysql 网络io_MySQL的各种网络IO超时的用法和实现
- matlab 多元多项式回归_Python机器学习之?线性回归入门(二)
- mysql的三大引擎是什么_MySQL常用三大存储引擎
- 奔跑吧Linux内核 入门篇(第二版)遇到问题发
- 为什么我的开发方式如此愚蠢?
- (转载)linux下输入输出重定向和管道符
- Canvas之translate,scale,rotate,skew