Atitit.biz业务系统 面向框架 面向模式---------数据映射imp
Atitit.biz业务系统 面向框架 面向模式---------数据映射imp
1.1. 面向变量 面向过程 面向对象 面向组件 面向框架 面向服务 面向模式1
2.1.2. order_service_dataMaper4bet5
2.2. Everyting is file ----------linux5
1.1. 面向变量 面向过程 面向对象 面向组件 面向框架 面向服务 面向模式
面向变量 asm语言,,变量是global的
模式 包括 架构模式 and 设计模式
1.2. 第2章 架构模式 18
2.1 导言 18
2.2 从混乱到有序 19
2.2.1 Layers模式 21
2.2.2 PipesandFilters模式 34
2.2.3 Blackboard模式 46
2.3 分布式系统 62
2.4 交互式系统 78
2.4.1 Model—View—Controller模式 79
2.4.2 Presentation—Abstraction—Control模式 93
2.5 可适应系统 109
2.5.1 Microkernel模式 110
2.5.2 Reflection模式 124
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
1.3. 第3章 设计模式 143
3.1 导言 143
3.2 结构分解模式 144
3.3 工作组织模式 157
3.4 访问控制 169
3.5 管理模式 178
3.5.1 CommandProcessor模式 179
3.5.2 ViewHandler模式 188
3.6 通信模式 198
3.6.1 Forwarder—Receiver模式 199
3.6.2 Client—Dispatcher—Server模式 209
3.6.3 Publisher—Subscriber模式 219
1.4. 面向对象中的面向变量全局变量问题
1.其实程序的传递就是变量的传递,变量是任何编程中不可缺少的因素。随着很多模式和编程方式的出现,应用设计可能层次比较清楚,更宜人理解。然而变量将变得很多,同样作用的变量在不同的层中可能不一样,而且随着不同开发人员在同一时间开发不同的层或者不同时间开发同一模块都可能根据自己的想法声明或者定义某个变量,而他们所定义的这个变量其实都是一样的, 理论上应该是一个变量,或者说至少命名应该一样。如果能归为同样命名的变量,那就能很大程度上减少维护和开发的工作。所以能否将同样功能的变量进行统一命名就很有必要。
2.了解变量其实就是了解业务,虽然很早就强调文档,强调业务知识的学习,然而我觉得看程序其实是了解业务的最好方法,但条件是程序比较清楚, 这里包括应用的构架清晰,具有相应的备注以及变量的含义清晰。
变量一个很重要的属性是她的scope, 根据scope我们可以将用到的变量进行分类,帮助我们理解。下面我就web应用将变量scope进行分类(其实同样适用于其他应用):
我们把变量分为两大类, 一类是 面向变量所关心的,他具有跨越型传递性,他这里的跨越型传递性表示该变量的所附属的值会传递到下个地方,这个地方可以是下个页面, 可以是服务器 可以是数据库中我们称该类变量为前锋型变量
。另一类是 面向对象所不关心的, 他不具有跨越型传递性, 他只是作为临时中介,比如某个页面的中的临时变量,java 方法中的临时变量. 他们不是我们所关心的,我们称这里变量为候补型变量
。对于面向对象的编程我们的原则是:
前锋型变量命名要很清晰,要能够联动,能串成串,不要冗余;候补型变量命名要简洁,最好不要游离在方法外,在方法中产生,在方法中消亡。
而对于前锋型变量 我认为因为他承载着有效数据,他的理解往往反映了业务,并且它是全局性的,具有跨越型的传递,所以他的重要性会更大一点,那么针对他能有很多tool 可以做。
Tool 1:前锋变量联动机功能描述:在页面上定义一个前锋型变量,那么可以自动在数据库中添加该字段 在DAO层 Business层添加该变量,同时可以实现修改某个页面变量 同时数据库以及各个层都能改变该变量。
或者 在数据库层添加某个字段 对应能产生页面,DAOBusiness的前锋型变量.
Tool2: 前锋变量检查工具功能描述:可以对某个页面,某个配置文件,数据库 查找所有的前锋型变量。将这些变量陈列出来给开发人员或者管理人员来分析。
1.5. 面向框架-的结构
Ui
Service+ (data imp)
2. Code
public static <t> t getBean(Class<t> class1) {
// attilax 老哇的爪子 j_48_40 o92
if (ati == null) // ini singleon patter..
{
ati = Guice.createInjector(new Module() {
@Override
public void configure(Binder BinderObj) {
AnnotatedBindingBuilder<DBCfg> bind = BinderObj.bind(DBCfg.class);
bind.toInstance(
getDbcfg().execute(null));
BinderObj.bind(DBX.class).to(DbutilX.class);
BinderObj.bind(Connection.class).to(ConnectionImp.class);
BinderObj.bind(UrlDslParser.class).to(UrlDslParserV3.class);
BinderObj.bind(StoreService.class).to(OrmStoreService.class);
BinderObj.bind(Function.class)
.annotatedWith(Names.named("order_service_dataMaper"))
.to(order_service_dataMaper4bet.class);
2.0.1. orderService
@Inject
private LogSvr logSvr;
@Inject @Named("order_service_dataMaper")
public Function dataMaper;
public int insert(Map order) {
// /...insert
order.put("$op", "insert");
order.put("order_id", filex.getUUidName());
order.put("order_money", needMoney);
dataMaper.apply(order);
storeSvr.insert(order);
int rzt = accSvr.reduceAmount(u.id.toString(), needMoney.doubleValue());
2.0.2. order_service_dataMaper4bet
package com.attilax.order;
import java.util.Map;
import java.util.function.Function;
public class order_service_dataMaper4bet implements Function {
@Override
public Object apply(Object t) {
Map order=(Map) t;
order.put("ocid", order.get("order_id"));
return null;
}
}
2.1. Everyting is file ----------linux
Everything is 精灵------gameing..
Atitit.biz业务系统 面向框架 面向模式---------数据映射imp的更多相关文章
- php模式-数据映射模式
概念:简言之,数据映射模式就是将对象和数据存储映射起来,对一个对象的操作会映射为对数据存储的操作. 深入理解:数据映射,是在持久化数据存储层(一般是关系型数据库)和驻于内存的数据表现层之间进行双向数据 ...
- 统一门户与业务系统的sso整合技术方案(单点登录)
一.单点登录(SSO,Single Sign On)整合目前计划接入统一门户的所有业务系统均为基于JavaEE技术的B/S架构系统.由于统一门户的单点登录技术选用的是JA-SIG组织开发的Cas Se ...
- Atitit.业务系统的新特性 开发平台 新特性的来源总结
Atitit.业务系统的新特性 开发平台 新特性的来源总结 1.1. 语言新特性(java c# php js python lisp c++ oc swift ruby go dart1 1.2. ...
- 从程序员到CTO的Java技术路线图 JAVA职业规划 JAVA职业发展路线图 系统后台框架图、前端工程师技能图 B2C电子商务基础系统架构解析
http://zz563143188.iteye.com/blog/1877266在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样 ...
- 吉特仓库管理系统-ORM框架的使用
最近在园子里面连续看到几篇关于ORM的文章,其中有两个印象比较深刻<<SqliteSugar>>,另外一篇文章是<<我的开发框架之ORM框架>>, 第一 ...
- Atitit.收银系统pos 以及打印功能的行业标准
Atitit.收银系统pos 以及打印功能的行业标准 1. ESC指令序列 Escape指令序列不同于ESC/POS指令 1 2. 打印标准OPOS POSPrinter 与 CashDrawer 驱 ...
- Atitit.收银系统模块架构attilax 总结
Atitit.收银系统模块架构attilax 总结 1. 常规收银系统模块结构1 1.1. 商品管理1 1.2. 会员系统1 1.3. 报表系统1 1.4. 会员卡系统1 1.5. 库存管理1 2. ...
- Atitit 在线支付系统功能设计原理与解决方案 与目录
Atitit 在线支付系统功能设计原理与解决方案 与目录 1.1. 支付系统1 1.2. 独立的支付子体系..微服务架构..1 1.3. 参考书籍1 支付战争 [The PayPal Wars:Bat ...
- Atitit.加密算法ati Aes的框架设计
Atitit.加密算法ati Aes的框架设计 版本进化 c:\1t\aesC47.java c:\1t\aes.java 增加了public static byte[] encrypt(byte[] ...
随机推荐
- POJ1679 The Unique MST(Kruskal)(最小生成树的唯一性)
The Unique MST Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 27141 Accepted: 9712 D ...
- 见微知著(二):解析ctf中的pwn--怎么利用double free
这次选2015年的0ctf的一道非常经典的pwn题,感觉这个题目作为练习题来理解堆还是很棒的. 运行起来,可以看出是一个实现类似于记事本功能的程序,就这一点而言,基本是套路了,功能都试一遍之后,就可以 ...
- Scala实战高手****第9课:Scala类和对象彻底实战和Spark源码鉴赏
scala类和对象 RDD中创建_sc和deps相比java更加的简洁. 在Spark的例如SparkContext.sqlSpark等全局成员在完成实例化. 在唯一实例的时候一般不会去使用伴生对象a ...
- HTML5 Boilerplate笔记(2)(转)
最近看到了HTML5 Boilerplate模版,系统的学习与了解了一下.在各种CSS库.JS框架层出不穷的今天,能看到这么好的HTML模版,感觉甚爽.写篇博客,推荐给大家使用. 一:HTML5 ...
- Android介绍
Android系统的底层建立在Linux系统之上,该平台有操作系统,中间件,用户界面和应用软件4层组成,它采用一种被称为软件叠层(Software Stack)的方式进行构建. 1.应用程序层:And ...
- HTTP Basic 验证客户端 C#实现笔记
HTTP Basic 验证客户端的原理:把HTTP头重的ContentType设置为:application/x-www-form-urlencoded如果HTTP头没有Authorization,那 ...
- 如何订阅Linux相关的邮件列表
转:http://blog.163.com/sunshine_linting/blog/static/44893323201282114012845/ 1.google"linux kern ...
- 【spring data jpa】 spring data jpa 中 时间格式设置between and 查询
实例代码: //举报时间 Date createDate = entity.getCreateDate(); if (createDate != null){ predicates.add(cb.be ...
- RequireJs 入门
官网:http://www.requirejs.cn/ 使用方法: 1.引入require.js 可以在底部引入: <script type="text/javascript" ...
- JavaScript数组api简单说明
1.一个数组加上另一个(一些)数组,不会修改原数组只会返回新数组 arrayObject.concat(arrayX,arrayX,......,arrayX) 2.把数组按照指定字符串分离,不会修改 ...