原始的解释器模式(Interpreter Pattern) 解释器模式的定义(现实项目中很少遇到,因此直接理论先。。。)解释器模式是一种按照规定语法进行解析的方案,在现在项目中使用较少,其定义为:给定一门语言,定义它的方法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。其构成如下:1、AbstractExpression——抽象解释器具体的解释任务由各个实现类完成,具体的解释器分别由TerminalExpress
变脸不变质的桥梁模式(Bridge Pattern) 有一哥们是搞山寨货的,什么流行就搞什么。自己有个厂子,前些时间服装挣钱,就生产衣服,现在搞手机挣钱,搞手机,这哥们很聪明,就换了个产品,工人,厂房都不变。他是怎么做到的?用类图来模拟一下:由类图可以看出这哥现有两家公司,一个搞房地产,一个搞山寨货(phone),房地产是长久渠道,山寨随时可能变更。用PHP来实现:<?phpabstract class Corp {
跨战区模式PK(总结) 创建类模式描述如何创建对象,行为类模式关注如何管理对象的行为,结构类模式则看重于如何建立一个软件结构,虽然三种模式的着重点不同,但是在实际应用中还是有重叠的,会出现一种模式适用,另外一种模式也适用的情况。 一、策略模式VS桥梁模式策略模式是一个行为模式,旨在封装一系列的行为,封装的格式(算法)不同,行为也就不同;而桥梁模式则是解决在不破坏封装的情况下如何抽取出它的抽象部分和实现部分,它
行为类模式大PK(总结) 行为类模式包括责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法、访问者模式,我去,好多。。。下面主要挑选几个比较容易混淆且比较重要的模式进行对比说明。 一、命令模式VS策略模式1、关注点不同策略模式关注的是算法替换的问题:一个新的算法投产,旧算法退休,或者提供多种算法由调用者自己选择使用,算法的自由更替是它实现的要
结构类模式大PK(总结) 结构类模式包括适配器模式、桥梁模式、组合模式、装饰模式、门面模式、享元模式和代理模式,它们都是通过组合类或对象产生更大结构以适应更高层次的逻辑需求。 一、代理模式VS装饰模式代理模式把当前的行为或功能委托给其他对象执行,代理类负责接口限定:是否可以调用真实角色,以及是否对发送到真实角色的消息进行变形处理,它不对被代理类的功能做任何处理,保证原汁原味的调用。代理模式使用到极致开发就是AO
创建类模式大PK(总结) 创建类模式包括工厂方法模式、建造者模式、抽象工厂模式、单例模式和原型模式,它们都能够提供对象的创建和管理职责。其中的单例模式和原型模式非常容易理解,单例模式是要保持在内存中只有一个对象,原型模式是要求通过复制的方式产生一个新对象,这两个不容易混淆。下面主要分析其它三种模式。 一、工厂方法模式VS建造者模式 1、意图不同在工厂方法模式里,关注的是一个产品整体,无须关心产品的
JAVA中线程同步的方法 用什么关键字修饰同步方法 ? 用synchronized关键字修饰同步方法 同步有几种实现方法,都是什么?分别是synchronized,wait与notifywait():使一个线程处于等待状态,并且释放所持有的对象的lock。sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。notify():唤醒一个
native2ascii 反向 将中文变成UNICODE,用native2ascii 但是如果将Unicode变成中文,用native2ascii -reverse即可 refurl:http://blog.csdn.net/z3h/article/details/2066023
java去除html标签 利用正则表达式即可,见如下代码: import java.util.regex.Matcher; import java.util.regex.Pattern; public class HTMLSpirit{ public static String delHTMLTag(String htmlStr){ String regEx_scr
Tomcat问题总结 1、Tomcat下WAR包和同名已解压项目,如何加载??首先你要明白什么时候war包才会解压,当tomcat启动时候会去查看webapps下的所有war包,同时查看是否有该war包对应的已解压文件,如果已经存在就不会再解压,也不会将你已经修改的jsp覆盖掉,只有当你删除war包对应的同名文件夹(你的工程)后,启动tomcat时才会再解压war文件 2、tomcat
java 直观的位移运算例子 java 位移运算,先出【运算结果】,不懂的可以运行程序: 6的二进制是: 1106进行左移两位运算后结果是:11000,也就是24,可以看出来,正数的左移N位就是在右边末尾加N个0 -33的二进制是: 11111111111111111111111111011111-33进行左移两位运算后结果是:11111111111111111111111101
Android TextView中设置超链接 使用android:autoLink="all" 只需在TextView中加入这个属性,而在TextView里面写的文字中包含网址、电话、email的会自动加入连接地址。具体代码如下:[html] view plaincopy [html] view plaincopyTextVi
解决servlet-api包冲突问题(maven) 问题描述:本人的项目是用Maven管理,而且用到了servlet3.0的技术,但是项目中用到servlet3.0的地方,总提示找不到类中的方法。很奇怪,在网上找到好多解决办法,综合一下终于解决了。现将经验分享给大家。 前提:我在pom.xml中配置了servlet-api 3.0,配置如下: Xml代码 dependency> g
分步注册代码 分步注册代码 XML/HTML Codediv class="content"> div class="idealsteps-container"> nav class="idealsteps-nav">nav> form action="" novalidate autocomplete="off" class="ideal
Java POI导出Excel时,字体单元格颜色示例 使用style.setFillForegroundColor(HSSFColor.PALE_BLUE.index);可以设置单元格的颜色,下面把颜色列表展示给大家,方便大家查阅。
将数据写入到CSV文件 /*** * 生成csv文件 * * @param context * @param list * 对象集合 * @param csvName * 对应的文件名称 * @param propertyArray *
如何在SD卡中创建数据库 使用Android中自带的SQLiteOpenHelper可以完成数据库的创建与管理,但有两点局限: (1)数据库创建在内存卡中,大小受限,创建位置位于/data/data/应用程序名/databases中(可使用Eclispe的DDMS查看)。 (2)如果无法获取Root权限,则无法直接查看创建的数据库。 鉴于上述限制及实际需要,打算使用SQLiteOpenHelp
[简单]Ibatis Error setting property Cause: java.lang.IllegalArgumentException错误记录 今天用Ibatis的时候写了个简单的查询语句,如下: Xml代码 select id="getAllBean" parameterClass="int" resultClass="TestBean"> SELECT * FROM TEST_BEAN START WITH ID =#orgId# CONN
动态索引结构和索引更新机制 ElasticSearch的Schema free特性给动态提取并索引网页结构化文本内容提供了支持,使用URL的hash值来作为索引的主键(实际开发中使用URL作为主键,这里使用URL的hash值是为了方便演示),当网页内容改变后,可以非常方便地更新索引。 下面演示了动态索引结构和索引更新机制:1、提交索引:curl -XPUT http://localho
《用AngularJS开发下一代Web应用》指令学习笔记 一.指令的作用:实现语义化标签我们常用的HTML标签是这样的:Html代码 div> span>目录span> div> 而使用AngularJS的directive(指令)机制,我们可以实现这样的东西Html代码 tabset> tab title='Home'>