12 2016 档案
摘要:由于解释器模式基本不用,我就直接转载网上的了,大家看看涨涨姿势http://blog.csdn.net/ylchou/article/details/7594135 一、引子 其实没有什么好的例子引入解释器模式,因为它描述了如何构成一个简单的语言解释器,主要应用在使用面向对象语言开发编译器中;在实际
阅读全文
摘要:/** * 中介者模式 * @author TMAC-J * 研究了这么多设计模式,觉得无非就是几点: * 1.若两个类有耦合关系,设立一个中间类,处理两个类的关系,把两个类的耦合降低 * 2.面向接口 * 3.在设计时就应当想到如果以后有修改,不要去修改原有类,而要设计成能新添加类去做新功能的架构 * 中介者模式用于两个相互通信的类,相当于一个中间层 * 这里模拟A变量始终是B...
阅读全文
摘要:/** * 访问者模式 * @author TMAC-J * 在客户端和元素之间添加一个访问者 * 当你需要添加一些和元素关系不大的需求时,可以直接放在访问者里面 * 或者是元素之间有一些公共的代码块,你可以把它放在访问者里面,就不用写重复代码了 * 适用于元素数据基本不变,操作不断变化的场景 * 可以不改变元素类,只改变访问者类,个人觉得这个访问者类相当于一个管理器 * 和迭代...
阅读全文
摘要:/** * 状态模式 * @author TMAC-J * 状态模式和策略模式很像,其实仔细研究发现完全不一样 * 策略模式各策略之间没有任何关系,独立的 * 状态模式各状态之间接口方法都是一样的 * 另外一个区别是状态模式主要用于状态经常发生改变的情况 * 策略模式发生在不改变的情况,策略模式一般在CONTEXT初始化时就决定了,并且中途不会改变 * 换句话说,策略模式只是在对...
阅读全文
摘要:/** * 备忘录模式 * @author TMAC-J * 用于存储bean的状态 */ public class MementoPattern { public class Memento{ private int lifeValue; private int grade; pub...
阅读全文
摘要:/** * 命令模式 * @author TMAC-J * 将调用者和接受者分离 * 可以将一组命令组合在一起,适合很多命令的时候 */ public class CommandPattern { interface Command{ void excute(); } public class TVReceiver{ ...
阅读全文
摘要:/** * 责任链模式 * @author TMAC-J * 老板讲任务交给CTO,CTO自然不会亲自去做,又把人物分配给项目经理,项目经理再把任务分配给组长,组长再分配给个人 * 如果中途哪个环节出现了问题,比如项目经理请假了,组长直接接上,使得项目更加灵活 */ public class ResponsibleChain { abstract class Hand...
阅读全文
摘要:/** * 迭代子模式 * @author TMAC-J * 聚合:某一类对象的集合 * 迭代:行为方式,用来处理聚合 * 是一种行为模式,用于将聚合本身和操作聚合的行为分离 * Java中的COLLECT就是一种聚合,Iterator类是一种迭代 * 好处:分开了行为和本身,便于行为的扩展和本身的维护,符合开闭原则 * 分为白盒(宽接口)和黑盒(窄接口) * 白盒:白盒提供了...
阅读全文
摘要:JAVA中抽象类不能实例化,但是却可以写构造方法,为什么呢? 首先第一点:构造方法不能实例化,想象一下,如果可以实例化,那么,实例化的是所有的子类还是具体哪一个? 第二点:为什么可以有构造方法? 看看我们的写法: public ConcreteAggregate(Object[] objs) { s
阅读全文
摘要:import java.util.ArrayList; import java.util.List; /** * 观察者模式 * @author TMAC-J * 牵一发而动全身来形容观察者模式在合适不过了 * 分为拉模式和推模式,这里不详细说了 */ public class ObserverPattern { interface IObserved{ ...
阅读全文
摘要:/** * 模块模式 * @author TMAC-J * 将一个完整的算法分离,分成不同的模块 * 用于有很多步骤的时候,可能以后这些步骤还会增加,把这些步骤分离 * 将有共性的部分放在抽象类中 * 避免代码重复 * 有利于算法扩展 * 假设这个算法是人,人具有的共性是早上起来穿衣服,吃饭,工作 */ public class TemplateMethod { ...
阅读全文
摘要:/** * 策略模式 * @author TMAC-J * 根据环境的不同选择不同的策略,把策略用接口抽象出来 */ public class StrategyPattern { interface Strategy{ void operate(); } public class StrategyA implements Str...
阅读全文
摘要:import java.util.Hashtable; /** * 享元模式 * @author TMAC-J * 享元模式一般和工厂模式一起使用,但此处为了更好说明,只用享元模式 * 定义:享元模式针对于是一种以时间来切换空间的方式,其公用同一实例,线程池,string都是其应用 */ public class FlyweightPattern { public...
阅读全文
摘要:import java.util.LinkedList; /** * 组合模式 * * @author TMAC-J 主要用于树状结构,用于部分和整体区别无区别的场景 想象一下,假设有一批连锁的理发店,你到每个店去理发都是等同的 * 那么假设不用组合模式,你到10家店理发,你需要知道这10家店或者是知道他们的父类店 * 然后new10次来统计消费情况...
阅读全文
摘要:可以看出,子类中的属性的引用指向的是父类属性的地址。
阅读全文
摘要:/** * 桥接模式 * @author TMAC-J * 应用于多维度方案 * 用组合的形式代替继承 * 符合单一职责原则 * 一个类只有一个引起他变化的原因 * 增加程序灵活性 */ public class BridgePattern { abstract class Road{ Car car; void run(){};...
阅读全文
摘要:/** * 外观模式(门面模式) * @author TMAC-J * 外观模式是通过访问一个前台来实现对子系统的访问,其和代理模式的区别是 * 代理模式是通过代理一个类的形式,也就是说一对一的关系 * 而外观模式是通过访问一个前台来对子系统(多个类)的访问,一对多 * 以下的例子中A、B、C都是子系统中的类 */ public class FacadePattern { p...
阅读全文
摘要:装饰者模式的关注点在于添加功能 代理模式的关注点在于控制对象的访问,其原型对象对于用户无法得知 适配器模式关注点在于适配,从定义上看装饰模式是对核心对象或者功能的扩展,适配器模式是把对象或者功能放到一个新对象中引用。举个例子,现在书城卖道德经的书,有线装版,有精装版,有日文版,有英文版,其中线装版和
阅读全文
摘要:/** * 装饰者模式 * @author TMAC-J * 总的来说,装饰者模式就是继承的应用 */ public class DecoratorPattern { interface Beans{ void doSomething(); } public class MyBean implements Beans{ @Override public void...
阅读全文
摘要:public class Adaptee{ public void doSomething(){ System.out.println("doSomething..."); } } interface Target{ void doOtherSomething(); } public class A
阅读全文
摘要:/** * * @author TMAC-J * 原型模式,可以说是简化的工厂模式 * 与工厂模式的区别是工厂模式可以生产很多的产品,而原型模式仅仅是复制而已 * 这里有一个问题:深克隆和潜克隆的问题(深克隆是包括克隆实例里面的引用,而浅克隆不克隆,而是指向和原型一样的引用) */ public class PrototypePattern { interface IProt...
阅读全文
摘要:/** * 建造者模式 * 主要用于构造复杂的对象 * 在优朋播放器就是采用建造者构建的,可以说比较有心得吧 * @author TMAC-J * */ public class BuilderPattern { /** * 要构建的对象bean * @author voole * */ public class Person{ private Stri...
阅读全文
摘要:/** * 抽象工厂模式 * 分为四部分 * 1.产品接口 * 2.产品实例 * 3.工厂接口(生产同一个产品的不同等级,这里是主要区别) * 4.工厂实例 * 工厂类最好用单例模式,但在这里主要是说明工厂方法,就不用单例了 * 与工厂方法不同的地方是,可以生产不同等级的产品 * @author TMAC-J * */ public class FactoryMethodP...
阅读全文
摘要:/** * 工厂方法模式 * 分为四部分 * 1.产品接口 * 2.产品实例 * 3.工厂接口 * 4.工厂实例 * 工厂类最好用单例模式,但在这里主要是说明工厂方法,就不用单例了 * @author TMAC-J * */ public class FactoryMethodPattern { /** * 产品 * */ interface IProduct...
阅读全文
摘要:一、 /** * lazy man(不是线程安全的) * @author TMAC-J * */ public class Singleton { private static Singleton instance; private Singleton(){} public static Singleton getInstance(){ if(instance!...
阅读全文
摘要:设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,
阅读全文
摘要:以下记录一些常用的Linux命令: mount -o remount -rw /system/etc/hosts #重新挂载/system/etc/hosts文件为读写权限 echo "hello" > /system/etc/hosts #向/system/etc/hosts文件输出hello m
阅读全文
摘要:http://www.cnblogs.com/liumt/p/6215445.html
阅读全文
摘要:简介 在Web领域基于Token的身份验证随处可见。在大多数使用Web API的互联网公司中,tokens 是多用户下处理认证的最佳方式。 以下几点特性会让你在程序中使用基于Token的身份验证 1.无状态、可扩展 2.支持移动设备 3.跨程序调用 4.安全 那些使用基于Token的身份验证的大佬们
阅读全文
摘要:http://blog.csdn.net/chichengit/article/details/49078525这篇文章介绍的比较详细
阅读全文
摘要:提问:CTRL-Z和CTRL-C区别?回答:CTRL-Z和CTRL-C都是中断命令,但是他们的作用却不一样.CTRL-C是强制中断程序的执行,而CTRL-Z的是将任务中断,但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动前台被
阅读全文
摘要:http://blog.csdn.net/haizimin/article/details/7797327(数据库方面) https://zhidao.baidu.com/question/510972844.html(流程方面)
阅读全文
摘要:http://blog.csdn.net/fulinwsuafcie/article/details/8028572
阅读全文
摘要:http://blog.csdn.net/javaniuniu/article/details/51907136
阅读全文
摘要:MyBatis Mapper.xml文件中 $和#的区别 网上有很多,总之,简略的写一下,作为备忘。例子中假设参数名为 paramName,类型为 VARCHAR 。 1.优先使用#{paramName,jdbcType=VARCHAR} 写法,除了可以防止sql注入以外,它还能在参数里含有单引号的
阅读全文
摘要:1.有时候开启了mysql shell 同时用eclipse访问mysql,mysql shell的crud无反应,因为两者公用了一个资源,是互斥的,要把其中一个关掉
阅读全文
摘要:HTTP cookies,通常又称作"cookies",已经存在了很长时间,但是仍旧没有被予以充分的理解。首要的问题是存在了诸多误区,认为cookies是后门程序或病毒,或压根不知道它是如何工作的。第二个问题是对于cookies缺少一个一致性的接口。尽管存在着这些问题,cookies仍旧在web开发
阅读全文
摘要:深入理解HTTP协议(转) http协议学习系列 1. 基础概念篇 1.1 介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet
阅读全文
摘要:在介绍appl ication 对象之前,先简单介绍一些Web 服务器的实现原理。 对于大部分浏览器而言,它通常负责完成三件事情: (1)向远程服务器发送请求。 (2)读取远程服务器返回的字符串数据。 (3)负责根据字符串数据渲染出一个丰富多彩的页面。 (1)向远程服务器发送请求。 (2)读取远程服
阅读全文
摘要:本文摘自:李刚 著 《轻量级 Java EE企业应用实战 Struts2+Spring+hibernate整合开发》 一. 简述 JSP 页面中包含9 个内置对象,这9 个内置对象都是Servlet API 的类或者接口的实例,只是JSP 规范将它们完成了默认初始化,即它们已经是对象,可以直接使用。
阅读全文
摘要:之前一直不明白依赖注入有什么好处,甚至觉得它是鸡肋,现在想想,当时真是可笑。 这个想法正如同说接口是没有用处一样。 当整个项目非常庞大,各个方法之间的调用非常复杂,那么,可以想象一下,假设说没有任何的分离模块的想法,各个关系非常的复杂,不便于维护以及查找bug等等。这个时候,就需要一个东西,去将这么
阅读全文
摘要:Question:首先,明确一点,什么是松耦合?什么是紧耦合? Answer:比如说两个模块,A模块和B模块,当两者的关联非常多的时候,就叫紧耦合,反之,则是松耦合。 实现松耦合的方式有,使用接口抽象出来,当两个模块的关联仅仅是根据几个接口就可以实现的话,那么,就应当叫松耦合,实现松耦合是非常有必要
阅读全文

浙公网安备 33010602011771号