单件模式与业务逻辑服务层封装
目前,软件分层的思想已经得到普及,在我所做过的项目中也得到了很好的效果。但是也有明显的缺点,应付从下而上的变化时,往往需要级连修改,尤其是数据库结构发生变化,另外如果采用了NHibernate之类ORM平台,这方面好好一些。
在复杂的业务逻辑层,往往对象的粒度很小,在表现层使用起来不太方便,会产生重复代码(例如常规的初始化,数据访问数等),加大了表现层开发人员的学习难度和开发工作量。此时往往是为业务逻辑层增加服务层(包装层),减少重复代码和不必要的复杂度。
增加服务层的缺点也是明显的:减少了灵活性。
本例使用了服务层包装业务逻辑,简化了表现层开发。服务层包装类需要数据库连接参数等,为此将采用单件模式,使用静态属性进一步封装服务层对象,并考虑了多线程的情景。这种情况下,以后服务层接口的变更仅需要修改服务层包装类。
// 服务层包装类
public class MyUserService
{
public MyUserService(string strConn)
{
// ......
}
// ......
}
......
public class BusinewwWapper
{
private static MyUserService m_User;
private static string m_StrConn;
static BusinewwWapper()
{
// 必要的初始化
m_StrConn =......;
}
private static void SetUser()
{
lock(typeof(SmWFM))
{
if(m_User == null )
m_User = new MyUserService(m_StrConn );
}
}
public static MyUserService User
{
get
{
if(m_User == null )
SetUser();
return m_User;
}
}
// ......
}
其实,有了Spring.NET这样的框架,这样做就没必要了。
转载于:https://www.cnblogs.com/fym37/archive/2006/05/24/408036.html
单件模式与业务逻辑服务层封装相关推荐
- 前后端分离业务逻辑常用封装函数(一)
1.数组去空: function clear_arr_trim(array) { for(var i = 0 ;i<array.length;i++){ if(array[i] == &qu ...
- 减少存储过程封装业务逻辑-web开发与传统软件开发的思维模式不同
转:减少存储过程封装业务逻辑-web开发与传统软件开发的思维模式不同 本篇文章讨论并不是:不要使用存储过程,因为有些事情还是要存储过程来完成,不可能不用.而是关于:"业务逻辑是不是要封装在存 ...
- MySQL:尽量不要用存储过程封装业务逻辑
本篇文章讨论并不是:不要使用存储过程,因为有些事情还是要存储过程来完成,不可能不用.而是关于:"业务逻辑是不是要封装在存储过程中实现,这样子php.java等就是调用存储过程". ...
- Delphi中DLL封装业务逻辑的实现
三层结构是开发C/S或B/S系统经常采用的策略,这种分层方式将系统分为用户服务.业务服务和数据服务三部分,能够解决客户端与服务器结构维护成本问题.改善客户端与服务器结构延展性问题:解决应用逻辑重复 ...
- 架构设计-业务逻辑层简述
业务逻辑层是专门处理软件业务需求的一层,处于数据库之上,服务层之下,完成一些列对Domain Object的CRUD,作为一组微服务提供给服务层来组织在暴露给表现层,如库存检查,用法合法性检查,订单创 ...
- petshop详解之五:PetShop之业务逻辑层设计
五 PetShop之业务逻辑层设计业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分.它的关注点主要集中在业务规则的制定.业务流程的实现等与业务需求有关的系统设计 ...
- petshop4.0 详解之五(PetShop之业务逻辑层设计)[转]
业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分.它的关注点主要集中在业务规则的制定.业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域( ...
- petshop4.0 详解之五(PetShop之业务逻辑层设计)
五 PetShop之业务逻辑层设计 业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分.它的关注点主要集中在业务规则的制定.业务流程的实现等与业务需求有关的系统设 ...
- PetShop之业务逻辑层设计
<解剖PetShop>系列之五 五 PetShop之业务逻辑层设计 业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分.它的关注点主要集中在业务规则的 ...
最新文章
- 逻辑模型设计步骤-关系模式定义
- 精准容量、秒级弹性,压测工具 + SAE 方案如何成功突破传统大促难关?
- ClickHouse入门
- 前端菜鸟是这样入门学习的,点进来!
- VS2008开发Silverlight程序用到的插件
- Jquery截取中文字符串
- Kubernetes Job Controller源码分析
- 两台服务器怎么发文件,两台服务器怎么发文件
- 【无线通信】基于matlab无线传感网络WSN仿真【含Matlab源码 1237期】
- 国军标GJB150三防试验(霉菌+盐雾+湿热)
- c语言 10个小程序,分享10个基础C语言的小程序
- 嵌入式系统架构设计师的理解
- myeclipse快速查找并快速定位
- AidLux“换脸”案例源码详解 (Python)
- B站Django项目天天生鲜学习|celery异步发送邮件遇到的问题
- 什么是上下变频器?以及对5G应用的作用
- oracle ebs 请求 待定,EBS 并发请求 计划 fnd_conc_release_classes(示例代码)
- 用c#实现拍拍抢拍精灵实现过程--核心代码--腾讯qq拍拍网秒杀器代码【欢迎转载】
- MATLAB 处理大数据
- UI灵感分析笔记#3(22.1.2)
热门文章
- phalcon的一些中文手册和帮助文档地址收集
- Gridview隐藏列和隐藏列的取值问题
- 诗与远方:无题(六十三)- 杂诗,然,矣
- Ranger开源贡献统计
- mysql批量用trim限定_mybatis中批量更新sql语句,trim、foreach标签,varchar定义理解
- 机器学习线性回归_机器学习实例--线性回归
- C# 操作Sqlite
- android pdf重排软件,PDF拆分重排(paper for kindle)
- ZJOI2008皇帝的烦恼
- Mongodb3.4 复制集及分片配置