Atitit.biz业务系统 面向框架  面向模式---------数据映射imp

1.1. 面向变量  面向过程  面向对象 面向组件  面向框架  面向服务 面向模式1

1.2. 第2章 架构模式 18 1

1.3. 第3章 设计模式 143 2

1.4. 面向对象中的面向变量全局变量问题2

1.5. 面向框架-的结构3

2. Code3

2.1.1. orderService4

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的更多相关文章

  1. php模式-数据映射模式

    概念:简言之,数据映射模式就是将对象和数据存储映射起来,对一个对象的操作会映射为对数据存储的操作. 深入理解:数据映射,是在持久化数据存储层(一般是关系型数据库)和驻于内存的数据表现层之间进行双向数据 ...

  2. 统一门户与业务系统的sso整合技术方案(单点登录)

    一.单点登录(SSO,Single Sign On)整合目前计划接入统一门户的所有业务系统均为基于JavaEE技术的B/S架构系统.由于统一门户的单点登录技术选用的是JA-SIG组织开发的Cas Se ...

  3. Atitit.业务系统的新特性 开发平台 新特性的来源总结

    Atitit.业务系统的新特性 开发平台 新特性的来源总结 1.1. 语言新特性(java c# php js python lisp c++ oc swift ruby  go dart1 1.2. ...

  4. 从程序员到CTO的Java技术路线图 JAVA职业规划 JAVA职业发展路线图 系统后台框架图、前端工程师技能图 B2C电子商务基础系统架构解析

    http://zz563143188.iteye.com/blog/1877266在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样 ...

  5. 吉特仓库管理系统-ORM框架的使用

    最近在园子里面连续看到几篇关于ORM的文章,其中有两个印象比较深刻<<SqliteSugar>>,另外一篇文章是<<我的开发框架之ORM框架>>, 第一 ...

  6. Atitit.收银系统pos 以及打印功能的行业标准

    Atitit.收银系统pos 以及打印功能的行业标准 1. ESC指令序列 Escape指令序列不同于ESC/POS指令 1 2. 打印标准OPOS POSPrinter 与 CashDrawer 驱 ...

  7. Atitit.收银系统模块架构attilax 总结

    Atitit.收银系统模块架构attilax 总结 1. 常规收银系统模块结构1 1.1. 商品管理1 1.2. 会员系统1 1.3. 报表系统1 1.4. 会员卡系统1 1.5. 库存管理1 2.  ...

  8. Atitit 在线支付系统功能设计原理与解决方案 与目录

    Atitit 在线支付系统功能设计原理与解决方案 与目录 1.1. 支付系统1 1.2. 独立的支付子体系..微服务架构..1 1.3. 参考书籍1 支付战争 [The PayPal Wars:Bat ...

  9. Atitit.加密算法ati Aes的框架设计

    Atitit.加密算法ati Aes的框架设计 版本进化 c:\1t\aesC47.java c:\1t\aes.java 增加了public static byte[] encrypt(byte[] ...

随机推荐

  1. [xsy2363]树

    设$f_{i,j}$表示$i$个点的树,权值为$j$且可以不选根的方案数,$g_{i,j}$表示$i$个点的树,权值为$j$且必选根的方案数 首先$g_{1,1}=0$ 我们可以把原树连上一个新的子树 ...

  2. 【DFS】Codeforces Round #402 (Div. 2) B. Weird Rounding

    暴搜 #include<cstdio> #include<algorithm> using namespace std; int n,K,Div=1,a[21],m,ans=1 ...

  3. python3开发进阶-Django视图(View)的常见用法

    阅读目录 简述Django的View(视图) CBV和FBV Request对象和Response对象 Django组件(render,redirect)详解 一.简述Django的View(视图) ...

  4. java前后端加密(转载)

    最近做一个项目的安全渗透测评,测评人员发来一份测试报告,报告明确提出不允许明文参数传输,因为数据在传输的过程中可能被拦截,被监听,所以在传输数据的时候使用数据的原始内容进行传输的话,安全隐患是非常大的 ...

  5. MathType如何插入竖直线

    不用键盘上的竖线,用左竖直线和右竖直线.

  6. facebook 分享

    在 Android 平台分享 本指南详细介绍如何通过 Android 应用将内容分享到 Facebook.用户通过您的应用分享时,相关内容会在其时间线上显示,并且可能在其好友的动态消息中显示. 用户还 ...

  7. Android集成友盟社会化分享功能

    1.  产品概述 友盟社会化组件,可以让移动应用快速具备社会化分享.登录.评论.喜欢等功能,并提供实时.全面的社会化数据统计分析服务. 指南将会手把手教你使用社会化组件SDK,用5分钟为APP增加新浪 ...

  8. 关于spring-data-jpa的排序问题

    本测试基于springBoot框架实现. pom.xml文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmln ...

  9. IOS研究之多个UITextField的键盘处理

    在IOS开发中使用UITextField时常须要考虑的问题就是键盘的处理. 有时候,弹出的键盘会将UITextField区域覆盖,影响用户输入.这个时候就要将视图上移.这个时候我们须要考虑两点: 1, ...

  10. 安装Scala 找不到或无法加载主类 scala.tools.nsc.MainGenericRunner 错误

    对于安装Scala时 找不到或无法加载主类 scala.tools.nsc.MainGenericRunner 错误,不管是linux还是window系统,原因很大可能是scala的安装路径中出现空格 ...