Test.java 4.33 KB
   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
package com.lyms.etl.start;

import com.lyms.etl.start.adapter.ForeignStudent;
import com.lyms.etl.start.adapter.ISpeak;
import com.lyms.etl.start.adapter.SpeakAdapter;
import com.lyms.etl.start.brige.G8Memory;
import com.lyms.etl.start.brige.HuaweiPhone;
import com.lyms.etl.start.brige.IPhone;
import com.lyms.etl.start.factorymethod.DatabaseLoggerFactory;
import com.lyms.etl.start.factorymethod.Logger;
import com.lyms.etl.start.factorymethod.LoggerFactory;
import com.lyms.etl.start.memento.Creater;
import com.lyms.etl.start.memento.Game;
import com.lyms.etl.start.memento.GameMemento;
import com.lyms.etl.start.observer.Observer;
import com.lyms.etl.start.observer.UserObserver;
import com.lyms.etl.start.observer.WechatServer;
import com.lyms.etl.start.proxy.CodeProxy;
import com.lyms.etl.start.proxy.CoderDynamicProxy;
import com.lyms.etl.start.proxy.ICoder;
import com.lyms.etl.start.proxy.JavaCoder;
import com.lyms.etl.start.singleton.Singleton;
import com.lyms.etl.start.singleton.SingletonEnum;
import com.lyms.etl.start.state.AirController;
import com.lyms.etl.start.strategy.PayStrategy;
import com.lyms.etl.start.strategy.Payer;
import com.lyms.etl.start.strategy.WxPay;
import com.lyms.etl.start.template.BsHouse;
import com.lyms.etl.start.template.HouseTemplate;
import com.lyms.etl.util.DateUtil;
import org.apache.commons.lang3.StringUtils;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
import java.util.Date;

/**
* Created by Administrator on 2020-03-25.
*/
public class Test {

public static void main(String[] args) {
// 枚举单例模式
// SingletonEnum singletonEnum = SingletonEnum.INSTANCE;
// SingletonEnum singletonEnum2 = SingletonEnum.INSTANCE;
// System.out.println(singletonEnum == singletonEnum2);

// //工厂方法
// LoggerFactory factory = new DatabaseLoggerFactory();
// Logger logger = factory.createLogger();
// logger.writeLog();

//适配器模式
ISpeak speak = new SpeakAdapter(new ForeignStudent("Jon"));
speak.speak();
speak.listen();


//装饰设计模式
// Driver d = new Driver();
// DecoratorDirver decoratorDirver = new DecoratorDirver(d);
// decoratorDirver = new DecoratorDirverA(decoratorDirver);
// decoratorDirver = new DecoratorDirverB(decoratorDirver);
// decoratorDirver.drive();


//代理模式
// ICoder coder = new JavaCoder();
// ICoder proxy = new CodeProxy(coder);
// proxy.code();
//要代理的真实对象
// ICoder coder = new JavaCoder();
// //创建中介类实例
// InvocationHandler handler = new CoderDynamicProxy(coder);
// ClassLoader classLoader = coder.getClass().getClassLoader();
// ICoder proxy = (ICoder)Proxy.newProxyInstance(classLoader, coder.getClass().getInterfaces(), handler);
// proxy.code();
// proxy.eat();


// //桥接模式
IPhone phone = new HuaweiPhone();
phone.setMemory(new G8Memory());
phone.buyPhone();


// //模板模式
// HouseTemplate build = new BsHouse("山顶别墅");
// build.buildHouse();
//
//
// //策略模式
// Payer payStrategy = new Payer();
// payStrategy.setPayStrategy(new WxPay());
// payStrategy.pay();

//状态模式 比如用户登录系统,在登录和注销的情况下发表评论、收藏等行为有着不同执行轨迹
// AirController controller = new AirController();
// controller.powerOn();
// controller.adjustTemp();
// controller.powerOff();
// controller.adjustTemp();



//观察者模式
// Observer userObserver = new UserObserver("张三");
// Observer userObserver1 = new UserObserver("李四");
// WechatServer server = new WechatServer();
// server.registerObsesrver(userObserver);
// server.registerObsesrver(userObserver1);
// server.notifyObserver();

// //备忘录模式
// Game game = new Game();
// game.setPlayStep(4);
// GameMemento gameMemento = game.saveGameMemento();
// Creater creater = new Creater();
// creater.setGameMemento(gameMemento);
// game.setPlayStep(0);
// game.recover(creater.getGameMemento());
// System.out.println(game.getPlayStep());




}
}