设计模式
_Seaton
这个作者很懒,什么都没留下…
展开
-
设计模式1--单例模式
单例模式的作用单利模式的常用场景单例模式的优点单例模式的实现方式及优缺点饿汉式实现代码:分析:懒汉式实现代码:分析:原创 2015-09-08 13:44:08 · 451 阅读 · 0 评论 -
设计模式3之工厂模式
工厂模式有简单工厂、工厂方法、抽象工厂这三种。本文章将通过UML图分析这是三种模式的优缺点。场景:一个Car接口,现在有两个实现类BMW、Audi。1 不使用工厂的情况下Test类需要知道Car接口和new BMW、Audi这两个实现类。每个需要用到实现类(如:BMW)的对象(如:Test)都需要new一个实现类,不符合开闭原则。如果很多地方都需要用到Car接口的实现类,那原创 2015-09-19 14:26:40 · 311 阅读 · 0 评论 -
设计模式2--破解单例
通过反射和反序列化可以破解除了枚举之外的单例。之所以破解不了枚举,是由于枚举的单例时天然的底层的。所有枚举单例最安全。1 反射破解代码1:package org.yxd.create;import java.lang.reflect.Constructor;/* * 项目名称:DesignMode--设计模式学习 * 包名:org.yxd.create--创建型模式原创 2015-09-11 15:36:07 · 325 阅读 · 0 评论 -
平行越权
系统描述:在如下图的会员系统中,门户项目是使用纯html做页面的。数据交互:html使用Ajax请求门户项目的一般处理程序--》门户项目请求接口项目的一般处理程序。导致问题:门户项目即使做了登录验证,也存在平行越权的问题。解决方法:个人信息的查询--接口项目在返回的JSON中添加会员卡号,该会员卡号需要和Session中的会员卡号对比,一致才返回给页面。提交--浏览器提交的原创 2016-01-28 19:46:38 · 2972 阅读 · 0 评论 -
SQL之数据库设计
1 整体解析大的项目一般会分多个小项目来做,而每个项目的数据库角色一般都不一样。这就使得数据库的“变更脚本”,必须按照不同角色来归类,其中权限变更脚本必须单独一个。如下图: CS/PC为角色名称,IFS为接口表,发送(相对开发系统)IFR为接口表,接收(相对开发系统)SYS为权限变更脚本名称表名:T_角色DB/BU名称,DB-基础数据,BU-业务数据 。2 变更脚本2.1 新增/修改数据库变更原创 2016-04-25 09:25:10 · 770 阅读 · 0 评论