上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 15 下一页
摘要: 外观模式定义:外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。这个模式比较简单,一个普通流程:洗脸 - 刷牙 - 穿衣 - 背包public class Face { public void wash(){ System.out.println("Wash face!"); }}public class Cloth { public void wear(){ System.out.println("Wear cloth!"); }}public class Tooth { public void br 阅读全文
posted @ 2013-06-08 13:09 心意合一 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 适配器模式定义:Adapter Pattern将一个类的接口,转换成客户期望的另一个接口,Adapter Pattern让原本接口不兼容的2个类可以合作无间。通过加入适配器,在不修改原有类/接口和现有类/接口的情况下使原本不互通的2个类/接口兼容没有修改就意味着没有风险适配器模式分为3个组成部分:Target -- 目标类/接口Adapter -- 适配器Adaptee -- 被适配的类/接口(被适配器适配成需要的目标类/接口)例如:public class Chick { public void crow(){ System.out.println("chick crow!&quo 阅读全文
posted @ 2013-06-08 10:19 心意合一 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 命令模式定义:命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其它对象。命令模式也支持可撤销操作。这个模式貌似和Observer Pattern很像,实际上区别不小:1,ObserverPattern是我有新数据,我给你新数据或者你来取新数据,是数据的传递;Command Pattern是我下达命令,你执行命令,是方法的调用(从这能看出,2种模式处理的场景并不相同)2,ObserverPattern中没有ConcreteCommand对Receiver的封装;而在Command Pattern中,ConcreteCommand扮演的角色像是一个调用的中继3,Command 阅读全文
posted @ 2013-06-07 11:34 心意合一 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 问题描述:部署在linux下的java应用程序中的中文会变成一个一个的“口”字,也就是乱码问题分析:代码中使用了如下的实现方式:new java.awt.Font("宋体", Font.PLAIN, 12)那么jdk中一定需要“宋体”这个字体($JAVA_HOME/jre/lib/fonts目录下)由于JDK默认没有中文字体,所以就会显示为乱码需要手工设置一下,让java应用程序能够找到所需的中文字体解决方式:将需要的字体文件上传至$JAVA_HOME/jre/lib/fonts目录下,重启tomcat即可(所需的字体可在window系统下找到,以window 7为例:字体 阅读全文
posted @ 2013-06-05 16:06 心意合一 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 单例模式定义:Ensure a class has only one instance,and provide a global pointof access toit.(确保某一个类只有一个实例,自行实例化并提供一个全局访问点)以下实现方式在多线程环境下都是没有问题的实现一(对getInstance()方法进行同步,影响性能):public class Singleton { private static Singleton instance = null; private Singleton(){} public synchronized static Singleton getIns.. 阅读全文
posted @ 2013-06-03 13:48 心意合一 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 抽象工厂模式定义:抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类其实和策略模式还是蛮像的,只不过现在抽象分离出去的不是一个普通类,而是一个工厂类,并且工厂类依赖于多个抽象类(比如:酱料和火腿)public class Store { private AbstractSourceFactory factory; public Store(AbstractSourceFactory factory){ this.factory = factory; } public void getSource(){ factory.sendSauce(); factor... 阅读全文
posted @ 2013-06-03 09:24 心意合一 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 工厂方法模式定义:Define an interface for creating an object,but let subclass decide which class to instantiate.Factory Methode lets a class defer instantiate to subclass.工厂方法模式定义了一个创建方法的接口,但由子类决定要初始化的类是哪一个,工厂方法让类把实例化推迟到子类。两家PizzaStore,NYPizzaStore提供纽约风味的pizza,CHPizzaStore提供芝加哥风味的pizza:public abstract class 阅读全文
posted @ 2013-05-30 18:40 心意合一 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 简单工厂并不算23种基本设计模式,应该算是一种编程习惯:public class PizzaStore { public Pizza orderPizza(String type){ Pizza pizza; if(null != type && type == "Greek"){ pizza = new GreekPizza(); }else if(null != type && type == "Cheese"){ pizza = new CheesePizza(); }else{ pizza = null; } re 阅读全文
posted @ 2013-05-30 14:50 心意合一 阅读(196) 评论(0) 推荐(0) 编辑
摘要: java.io是使用Decorate Pattern设计的:其中FilterInputStream为Decorate Pattern中的Decorator,注意FilterInputStream即不是接口也不是抽象类,是一个实实在在的类,形如:public class FilterInputStreamextends InputStream{ protected InputStream in; protected FilterInputStream(InputStream in){ this.in = in; } ...}它的子类提供了很多“装饰”功能,如:BufferedInp... 阅读全文
posted @ 2013-05-29 20:26 心意合一 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 装饰者模式定义:装饰者模式动态的将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案著名的咖啡屋示例,咖啡屋订单系统要求能够计算出每种咖啡的价格(个人感觉3种设计的主要差别在于抽象方式不同):总共有3种饮品(HouseBlend,Decaf,Espresso),2种配料(Mocha,Whip)设计一:(咖啡 = 饮品,咖啡+配料 = 饮品,在抽象的过程中并没有考虑咖啡和配料之间的关系)类太多,太复杂,如果增加一种饮品,增加一种配料,或者某一种饮品、配料的价格发生改变,要找到所有牵扯到的部分一一修改设计二:(配料抽象为饮品的属性)着实简洁了不少:public abstract 阅读全文
posted @ 2013-05-28 17:29 心意合一 阅读(261) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 15 下一页