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[] ...
随机推荐
- 【Java】Java划水练习
bzoj1000 A+B Problem Scanner sc=new Scanner(new BufferedInputStream(System.in)); 声明读入器 nextInt 读入整数 ...
- 【后缀数组】【线段树】poj3974 Palindrome
考虑奇数长度的回文,对于字符串上的每个位置i,如果知道从i开始的后缀和到i为止的前缀反转后的字符串的lcp长度的话,也就知道了以第i个字符为对称中心的最长回文的长度了.因此,我们用在S中不会出现的字符 ...
- 【莫队算法】【权值分块】bzoj2223 [Coci 2009]PATULJCI
不带修改主席树裸题<=>莫队+权值分块裸题. 复杂度O(m*sqrt(n)). P.S.题目描述坑爹,第二个数是权值的范围. #include<cstdio> #include ...
- 【斜率优化】BZOJ1096-[ZJOI2007]仓库建设
[题目大意] 有n个工厂编号分别为1-n,第i个仓库库存量为p[i],距离第1个仓库的距离为x[i](x[1]=0).在每一个工厂建立一个仓库费用为c[i],没有建立仓库的工厂只能往编号大于它的仓库运 ...
- IO流--字符流缓冲技术
缓冲技术是为了提高数据的读写效率而提出的. (1)字符流的缓冲读 在字符流的缓冲技术中提供了一个newLine()方法,这个方法是跨平台的 在读数据的时候采用读完直接刷新的方式可以保证断电后数据不会丢 ...
- 记录一次Elasticsearch线上部署后出现:org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: []的问题解决
说明:ES部署了3个节点,而一般情况只要这三个节点的IP其中一个都可以连接,Web端口使用的是9500,Client连接使用的是9600,调用程序使用了ES原生Client进行连接. 解决方法: 1. ...
- 【mybatis】count 计数查询 + List的IN查询
mybatis中conut计数的sql怎么在mapper中写? Mapper.java类这么写 @Mapper public interface GoodsBindConfigMappingMappe ...
- [Git] Git把Tag推送到远程仓库
转载: http://blog.csdn.net/hustpzb/article/details/8056518 用git tag来给工程打上标签,但是这个命令只是在本地仓库打标签而已, 为了能把标签 ...
- Oracle JET 起步
Oracle JET介绍 Oracle JET是一个用于经验丰富的JavaScript开发人员构建客户端的基于JavaScript的应用程序的工具包.(抱歉本人对JavaScript绝对是从零开始) ...
- Jenkins任务优先分配到原来的执行节点上
Jenkins一般部署采用master-salve架构,这样可以同时构建多个任务. jenkins任务构建时默认使用第一次随机分配的机器,这样可以增量拉取代码,减少gitlab或者github的负担. ...