PET SHOP 4.0 初学者分析(项目分解)

简介: 我一共把系统分了五大块,最后一块命名为"其他",缓存依赖相关CacheDependencyFactory    缓存依赖类的工厂类 ICacheDependency             缓存依赖类接口 TableCacheDependency      缓存依赖实现类数据相关DALFactory...

我一共把系统分了五大块,最后一块命名为"其他",
缓存依赖相关
CacheDependencyFactory    缓存依赖类的工厂类 
ICacheDependency             缓存依赖类接口 
TableCacheDependency      缓存依赖实现类

数据相关
DALFactory                        数据层的抽象工厂 
IDAL                                 数据访问层接口定义 
SQLServerDAL                   SQLServer数据访问层 
OracleDAL                         Oracle数据访问层 
DBUtility                            数据库访问组件基础类

消息相关
IBLLStrategy                     同步/异步处理策略接口(实现在bll根据配置反射选择) 
MessagingFactory              异时处理消息队列的抽象工厂 
IMessaging                       异时处理消息队列接口定义 
MSMQMessaging                异时处理消息队列的实现
OrderProcessor                 后台处理进程,处理订单队列

profile相关
Profile                          Profile的数据访问层 
ProfileDALFactory          ProfileDAL的工厂类(反射创建ProfileDAL) 
IProfileDAL                   Profile的数据访问层接口定义 
OracleProfileDAL           Oracle的Profile Providers 做用户状态管理 
SQLProfileDAL              SQL Server 的Profile Providers 做用户状态管理

其他
Membership                 Membership认证和授权管理 
WEB                           表示层 
Model                          业务实体 
BLL                             业务逻辑层


下面解释一下各个大块的作用
1.缓存依赖相关
缓存依赖在petshop4.0中就是把页面输出缓存和数据库中的表关联起来,如果数据库中的表有任何改动的话,缓存失效。
缓存的作用就相当大了,再加上个缓存依赖作用就相当“暴力”了。具体强到哪里,等我以后分析了这块就明白了


2.profile相关
有个前辈在介绍profile的时候说:以人为本的profile.作用是让用户可以做一些个性化的选择.比如让用户选择所喜欢的网站风格,让用户选择是否弹出消息提醒等,
在petshop4.0中主要是记录用户的购物车信息和意向清单.
profile设置分为针对登陆用户和非登陆用户的.具体的设置办法将在后面分析

3.消息相关
消息队列在企业级应用程序中非常多见,以petshop4.0为例,消息队列的好处
1.如果后台订单数据库出现故障,订单就全部插入到消息队列当中,等数据库恢复之后立即处理他们.
2.因为涉及到windows控制台程序,所以多线程处理订单,就非常容易搞定
3.因为是异步,所以对系统的性能有很大提升
消息相关这一块我准备放在最后来讲

数据访问层和其他的就先不说了还是看下面的分块分析吧

目录
相关文章
|
7月前
|
Java
Albert 源码解析:分组复用
Albert 源码解析:分组复用
47 0
|
5月前
|
人工智能 Java
AI大模型----SpringBoot添加放行最简单的方式@AuthAccess,问题库构思,概念title,答案text,搜索search
AI大模型----SpringBoot添加放行最简单的方式@AuthAccess,问题库构思,概念title,答案text,搜索search
|
存储 自然语言处理 NoSQL
Text2Cypher:大语言模型驱动的图查询生成
本文的主题是我们认为这个 LLM+ 领域最唾手可得、最容易摘取的果实,Text2Cypher:自然语言生成图查询。输入自然语言,生成相对应的图查询语句,甚至可以直接返回该语句执行结果。
445 0
|
缓存 算法 NoSQL
来吧,自己动手撸一个分布式ID生成器组件(上)
来吧,自己动手撸一个分布式ID生成器组件(上)
来吧,自己动手撸一个分布式ID生成器组件(上)
|
设计模式 存储 SQL
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(上)
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(上)
143 0
|
设计模式 存储 Java
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(下)
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(下)
203 0
|
编译器 C语言 C++
软件开发入门教程网 Search之C++ 类 & 对象
C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。
实验内容:根据《网上图书销售系统》的功能需求,使用Rational Rose建立系统的类图模型
实验内容:根据《网上图书销售系统》的功能需求,使用Rational Rose建立系统的类图模型
152 0
|
程序员
祖传shi山代码重构实战(01)-Extract Class提炼类
某个类做了应该由两个类做的事。 建立一个新类,将相关的字段和函数从旧类移到新类。
151 0
|
存储 C#
对于‘用C#编写一个员工工资计算’问题的代码编写风格和结构设计考虑的比较【发现自己还是太弱,大家可以在评论区中提出我代码中的不足】
对于‘用C#编写一个员工工资计算’问题的代码编写风格和结构设计考虑的比较【发现自己还是太弱,大家可以在评论区中提出我代码中的不足】
124 0
对于‘用C#编写一个员工工资计算’问题的代码编写风格和结构设计考虑的比较【发现自己还是太弱,大家可以在评论区中提出我代码中的不足】