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()); } }