java 设计模式之单利模式以及代理模式(静态)
2013-11-26 17:19
686 查看
1:单利模式:
public class Singleton {
private static Singleton uniqueInstance = null;
private Singleton() {
// Exists only to defeat instantiation.
}
public static Singleton getInstance() {
if (uniqueInstance == null) {
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
// Other methods...
}
代理模式(静态):
package com;
/**
* 车站接口-【抽象角色】
*
* @author abing
*
*/
interface Station {
void sellTicks();// 卖票
void transport();// 运输乘客
}
/**
* 火车站实现类-【具体角色】
*
* @author abing
*
*/
class TrainStationImpl implements Station {
@Override
public void sellTicks() {
System.out.println("TrainStation sell tickets");
}
@Override
public void transport() {
System.out.println("TrainStation transport passenger");
}
}
/**
* 该类做为火车站的一个代理直接供客户端调用-【代理角色】
*
* @author abing
*
*/
class StationProxy implements Station {
Station sta = new TrainStationImpl();
@Override
public void sellTicks() {
sta.sellTicks();//代理类中调用真实角色的方法。
}
public void otherOperate() {
System.out.println("do some other things...");
}
@Override
public void transport() {
System.out.println("StationProxy can not transport");
}
}
/**
* 客户端测试类
*
* @author abing
*
*/
public class StaticProxyDemo {
public static void main(String[] args) {
Station station = new StationProxy();//客户端直接操作代理类,避免了客户端与真实类的直接交涉
station.sellTicks();
}
}
public class Singleton {
private static Singleton uniqueInstance = null;
private Singleton() {
// Exists only to defeat instantiation.
}
public static Singleton getInstance() {
if (uniqueInstance == null) {
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
// Other methods...
}
代理模式(静态):
package com;
/**
* 车站接口-【抽象角色】
*
* @author abing
*
*/
interface Station {
void sellTicks();// 卖票
void transport();// 运输乘客
}
/**
* 火车站实现类-【具体角色】
*
* @author abing
*
*/
class TrainStationImpl implements Station {
@Override
public void sellTicks() {
System.out.println("TrainStation sell tickets");
}
@Override
public void transport() {
System.out.println("TrainStation transport passenger");
}
}
/**
* 该类做为火车站的一个代理直接供客户端调用-【代理角色】
*
* @author abing
*
*/
class StationProxy implements Station {
Station sta = new TrainStationImpl();
@Override
public void sellTicks() {
sta.sellTicks();//代理类中调用真实角色的方法。
}
public void otherOperate() {
System.out.println("do some other things...");
}
@Override
public void transport() {
System.out.println("StationProxy can not transport");
}
}
/**
* 客户端测试类
*
* @author abing
*
*/
public class StaticProxyDemo {
public static void main(String[] args) {
Station station = new StationProxy();//客户端直接操作代理类,避免了客户端与真实类的直接交涉
station.sellTicks();
}
}
相关文章推荐
- 设计模式(3)-结构型-代理模式(proxy)以及java动态代理的两种方式
- java设计模式--代理模式(静态代理和动态代理)
- 【GOF23设计模式】_代理模式_静态代理_动态代理_开发场景JAVA236-237
- JAVA设计模式之静态代理
- JAVA设计模式之代理模式(静态代理和动态代理)
- 设计模式(3)-结构型-代理模式(proxy)以及java动态代理的两种方式
- 设计模式------Java多线程之静态代理模式
- java代理设计模式(静态代理与动态代理)
- 设计模式(3)-结构型-代理模式(proxy)以及java动态代理的两种方式
- java设计模式之代理模式Proxy--静态代理
- Java设计模式——静态代理设计模式
- Java设计模式之静态代理模式 (Spring Aop)
- java设计模式之代理模式 (静态&动态)
- java设计模式之静态代理与动态代理
- 转个经典的帖子:说故事学设计模式之-Java静态代理模式
- Java设计模式之—静态代理和动态代理
- java设计模式之四:代理模式 java静态代理和动态代理
- Java设计模式学习06——静态代理与动态代理
- Java设计模式-----Proxy模式(静态代理)
- java 设计模式 代理 静态和动态