标签:界面 nts 调用 log 线程安全 设计 饿汉式 value single
第一式 外观模式
定义:为子系统的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这一接口使得这一子系统更加容易使用。
优点:松散耦合 简单易用 更好地划分访问的层次
缺点:不应过度使用
本质:封装交互 简单调用
public interface testA { public void test(); } public interface testB { public void test(); } public interface testC { public void test(); } public class concreteTestA implements testA { @Override public void test() { // TODO Auto-generated method stub System.out.println("test A"); } } public class concreteTestB implements testB { @Override public void test() { // TODO Auto-generated method stub System.out.println("test B"); } } public class concreteTestC implements testC { @Override public void test() { // TODO Auto-generated method stub System.out.println("test C"); } } public class facade { public void test() { testA ta = new concreteTestA(); ta.test(); testB tb = new concreteTestB(); tb.test(); testC tc = new concreteTestC(); tc.test(); } } public class user { public static void main(String[] args) { // TODO Auto-generated method stub facade fc = new facade(); fc.test(); } }
第二式 适配器模式
定义:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
优点:更好地复用性 更好地可扩展性
缺点:使用过多,会使系统更加凌乱,不容易整体进行把握
本质:转换匹配 复用功能
public interface target { public void request(); } public class adaptee { public void request() { System.out.println("adaptee test"); } } public class adapter implements target { adaptee apt = null; public adapter(adaptee apt) { this.apt = apt; } @Override public void request() { // TODO Auto-generated method stub apt.request(); } } public class user { public static void main(String[] args) { adaptee adp = new adaptee(); target tar = new adapter(adp); tar.request(); } }
第三式 单例模式
懒汉式:
public class singleton { private static singleton instance = null; private singleton() { } public static singleton getInstance() { if (instance == null) { instance = new singleton(); } return instance; } }
饿汉式:
public class singleton { private static singleton instance = new singleton(); private singleton() { } public static singleton getInstance() { return instance; } }
缓存的基本实现
public class javaCache { private static Map<String, Object> instance = null; public Object getInstance(String key) { Object object = instance.get(key); if (object == null) { object = key + ", value"; instance.put(key, object); } return object; } }
枚举类型也是实现单例模式的一种选择。另外,还可以通过一种类级内部类的方式来实现单例模式。
public class singleton { private static class instanceHolder { private static singleton instance = new singleton(); } private singleton() { } public static singleton getInstance() { return instanceHolder.instance; } }
这里需要解释补充一下:类级内部类
标签:界面 nts 调用 log 线程安全 设计 饿汉式 value single
原文地址:http://www.cnblogs.com/shal9999/p/6920997.html