设计模式
This commit is contained in:
@@ -23,6 +23,7 @@
|
|||||||
<version>1.2</version>
|
<version>1.2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
||||||
<groupId>org.codehaus.jackson</groupId>
|
<groupId>org.codehaus.jackson</groupId>
|
||||||
<artifactId>jackson-xc</artifactId>
|
<artifactId>jackson-xc</artifactId>
|
||||||
<version>1.9.12</version>
|
<version>1.9.12</version>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ public class MainEventTest {
|
|||||||
timer.schedule(new TimerTask() {
|
timer.schedule(new TimerTask() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
System.out.println("做点事情");
|
||||||
}
|
}
|
||||||
},1000);
|
},1000);
|
||||||
}
|
}
|
||||||
|
|||||||
8
pom.xml
8
pom.xml
@@ -40,6 +40,13 @@
|
|||||||
<artifactId>quartz</artifactId>
|
<artifactId>quartz</artifactId>
|
||||||
<version>2.3.0</version>
|
<version>2.3.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>1.18.20</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
@@ -85,6 +92,7 @@
|
|||||||
<module>common</module>
|
<module>common</module>
|
||||||
<module>dal</module>
|
<module>dal</module>
|
||||||
<module>bootstrap</module>
|
<module>bootstrap</module>
|
||||||
|
<module>sjms</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
35
sjms/pom.xml
Normal file
35
sjms/pom.xml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>forever</artifactId>
|
||||||
|
<groupId>com.love.qn</groupId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>sjms</artifactId>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.love.qn</groupId>
|
||||||
|
<artifactId>common</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.hutool</groupId>
|
||||||
|
<artifactId>hutool-all</artifactId>
|
||||||
|
<version>5.8.12</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
|
||||||
|
</project>
|
||||||
27
sjms/src/main/java/com/quinn/sjms/LiskovDemo.java
Normal file
27
sjms/src/main/java/com/quinn/sjms/LiskovDemo.java
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
package com.quinn.sjms;
|
||||||
|
|
||||||
|
import com.quinn.sjms.model.Father;
|
||||||
|
import com.quinn.sjms.model.Son;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class LiskovDemo {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
HashMap hMap = new HashMap();
|
||||||
|
Map map = new HashMap();
|
||||||
|
Father f = new Father();
|
||||||
|
f.say(hMap);
|
||||||
|
|
||||||
|
Son s = new Son();
|
||||||
|
s.say(hMap);
|
||||||
|
|
||||||
|
Son s1 = new Son();
|
||||||
|
s1.say(map);
|
||||||
|
|
||||||
|
// Father f1 = new Father();
|
||||||
|
// f1.say(map);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package com.quinn.sjms.abstractpro;
|
||||||
|
|
||||||
|
public abstract class AbstractCreator {
|
||||||
|
//创建A产品家族
|
||||||
|
public abstract AbstractProductA createProductA();
|
||||||
|
//创建B产品家族
|
||||||
|
public abstract AbstractProductB createProductB();
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.quinn.sjms.abstractpro;
|
||||||
|
|
||||||
|
public abstract class AbstractProductA {
|
||||||
|
//每个产品共有的方法
|
||||||
|
public void shareMethod(){
|
||||||
|
}
|
||||||
|
//每个产品相同方法,不同实现
|
||||||
|
public abstract void doSomething();
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.quinn.sjms.abstractpro;
|
||||||
|
|
||||||
|
public abstract class AbstractProductB {
|
||||||
|
//每个产品共有的方法
|
||||||
|
public void shareMethod(){
|
||||||
|
}
|
||||||
|
//每个产品相同方法,不同实现
|
||||||
|
public abstract void doSomething();
|
||||||
|
}
|
||||||
|
|
||||||
17
sjms/src/main/java/com/quinn/sjms/abstractpro/Client.java
Normal file
17
sjms/src/main/java/com/quinn/sjms/abstractpro/Client.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package com.quinn.sjms.abstractpro;
|
||||||
|
|
||||||
|
public class Client {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
//定义出两个工厂
|
||||||
|
AbstractCreator creator1 = new Creator1();
|
||||||
|
AbstractCreator creator2 = new Creator2();
|
||||||
|
//产生A1对象
|
||||||
|
AbstractProductA a1 = creator1.createProductA();
|
||||||
|
//产生A2对象
|
||||||
|
AbstractProductA a2 = creator2.createProductA();
|
||||||
|
//产生B1对象
|
||||||
|
AbstractProductB b1 = creator1.createProductB();
|
||||||
|
//产生B2对象
|
||||||
|
AbstractProductB b2 = creator2.createProductB();
|
||||||
|
}
|
||||||
|
}
|
||||||
13
sjms/src/main/java/com/quinn/sjms/abstractpro/Creator1.java
Normal file
13
sjms/src/main/java/com/quinn/sjms/abstractpro/Creator1.java
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
package com.quinn.sjms.abstractpro;
|
||||||
|
|
||||||
|
public class Creator1 extends AbstractCreator{
|
||||||
|
//只生产产品等级为1的A产品
|
||||||
|
public AbstractProductA createProductA() {
|
||||||
|
return new ProductA1();
|
||||||
|
}
|
||||||
|
//只生产产品等级为1的B产品
|
||||||
|
public AbstractProductB createProductB() {
|
||||||
|
return new ProductB1();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
13
sjms/src/main/java/com/quinn/sjms/abstractpro/Creator2.java
Normal file
13
sjms/src/main/java/com/quinn/sjms/abstractpro/Creator2.java
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
package com.quinn.sjms.abstractpro;
|
||||||
|
|
||||||
|
public class Creator2 extends AbstractCreator{
|
||||||
|
//只生产产品等级为2的A产品
|
||||||
|
public AbstractProductA createProductA() {
|
||||||
|
return new ProductA2();
|
||||||
|
}
|
||||||
|
//只生产产品等级为2的B产品
|
||||||
|
public AbstractProductB createProductB() {
|
||||||
|
return new ProductB2();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
10
sjms/src/main/java/com/quinn/sjms/abstractpro/ProductA1.java
Normal file
10
sjms/src/main/java/com/quinn/sjms/abstractpro/ProductA1.java
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
package com.quinn.sjms.abstractpro;
|
||||||
|
|
||||||
|
public class ProductA1 extends AbstractProductA{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doSomething() {
|
||||||
|
System.out.println("产品A1的实现方法");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
10
sjms/src/main/java/com/quinn/sjms/abstractpro/ProductA2.java
Normal file
10
sjms/src/main/java/com/quinn/sjms/abstractpro/ProductA2.java
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
package com.quinn.sjms.abstractpro;
|
||||||
|
|
||||||
|
public class ProductA2 extends AbstractProductA{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doSomething() {
|
||||||
|
System.out.println("产品A2的实现方法");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
10
sjms/src/main/java/com/quinn/sjms/abstractpro/ProductB1.java
Normal file
10
sjms/src/main/java/com/quinn/sjms/abstractpro/ProductB1.java
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
package com.quinn.sjms.abstractpro;
|
||||||
|
|
||||||
|
public class ProductB1 extends AbstractProductB{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doSomething() {
|
||||||
|
System.out.println("产品B1的实现方法");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
10
sjms/src/main/java/com/quinn/sjms/abstractpro/ProductB2.java
Normal file
10
sjms/src/main/java/com/quinn/sjms/abstractpro/ProductB2.java
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
package com.quinn.sjms.abstractpro;
|
||||||
|
|
||||||
|
public class ProductB2 extends AbstractProductB{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doSomething() {
|
||||||
|
System.out.println("产品B2的实现方法");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
11
sjms/src/main/java/com/quinn/sjms/model/Father.java
Normal file
11
sjms/src/main/java/com/quinn/sjms/model/Father.java
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
package com.quinn.sjms.model;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
public class Father {
|
||||||
|
|
||||||
|
public void say(HashMap hashMap) {
|
||||||
|
System.out.println("Father say");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package com.quinn.sjms.model;
|
||||||
|
|
||||||
|
public class InvokeFather {
|
||||||
|
|
||||||
|
public Father invoke (){
|
||||||
|
return new Father();
|
||||||
|
}
|
||||||
|
}
|
||||||
10
sjms/src/main/java/com/quinn/sjms/model/InvokeSon.java
Normal file
10
sjms/src/main/java/com/quinn/sjms/model/InvokeSon.java
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
package com.quinn.sjms.model;
|
||||||
|
|
||||||
|
public class InvokeSon extends InvokeFather{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Son invoke() {
|
||||||
|
return new Son();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
10
sjms/src/main/java/com/quinn/sjms/model/Son.java
Normal file
10
sjms/src/main/java/com/quinn/sjms/model/Son.java
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
package com.quinn.sjms.model;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class Son extends Father {
|
||||||
|
|
||||||
|
public void say(Map hashMap) {
|
||||||
|
System.out.println("Son say");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package com.quinn.sjms.modelfunction;
|
||||||
|
|
||||||
|
public abstract class HanmaCar {
|
||||||
|
public void run(){
|
||||||
|
System.out.println("开始跑了");
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract void job();
|
||||||
|
|
||||||
|
public final void didi(){
|
||||||
|
System.out.println("按喇叭");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package com.quinn.sjms.modelfunction;
|
||||||
|
|
||||||
|
public class HanmaH1Car extends HanmaCar{
|
||||||
|
@Override
|
||||||
|
public void job() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
27
sjms/src/main/java/com/quinn/sjms/other/CanClone.java
Normal file
27
sjms/src/main/java/com/quinn/sjms/other/CanClone.java
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
package com.quinn.sjms.other;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class CanClone implements Cloneable{
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
private String line;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected CanClone clone() throws CloneNotSupportedException {
|
||||||
|
return (CanClone) super.clone();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) throws CloneNotSupportedException {
|
||||||
|
CanClone canClone = new CanClone();
|
||||||
|
canClone.setName("dad");
|
||||||
|
canClone.setLine("test");
|
||||||
|
CanClone clone = canClone.clone();
|
||||||
|
canClone.setLine("new");
|
||||||
|
System.out.println(canClone);
|
||||||
|
System.out.println(clone);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
28
sjms/src/main/java/com/quinn/sjms/other/CanHuToolClone.java
Normal file
28
sjms/src/main/java/com/quinn/sjms/other/CanHuToolClone.java
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
package com.quinn.sjms.other;
|
||||||
|
|
||||||
|
import cn.hutool.core.clone.CloneSupport;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class CanHuToolClone extends CloneSupport<CanHuToolClone> {
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
private String line;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CanHuToolClone clone() {
|
||||||
|
return (CanHuToolClone) super.clone();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
CanHuToolClone canClone = new CanHuToolClone();
|
||||||
|
canClone.setName("dad");
|
||||||
|
canClone.setLine("test");
|
||||||
|
CanHuToolClone clone = canClone.clone();
|
||||||
|
canClone.setLine("new");
|
||||||
|
System.out.println(canClone);
|
||||||
|
System.out.println(clone);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package com.quinn.sjms.product;
|
||||||
|
|
||||||
|
public class ConcreteCreator extends Creator {
|
||||||
|
@Override
|
||||||
|
public <T extends Product> T createProduct(Class<T> c) {
|
||||||
|
Product product=null;
|
||||||
|
try {
|
||||||
|
Class<?> aClass = Class.forName(c.getName());
|
||||||
|
product = (Product) aClass.newInstance();
|
||||||
|
} catch (Exception e) {
|
||||||
|
//异常处理
|
||||||
|
}
|
||||||
|
return (T)product;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
ConcreteCreator creator = new ConcreteCreator();
|
||||||
|
CustomProduct1 product = creator.createProduct(CustomProduct1.class);
|
||||||
|
product.method2();
|
||||||
|
product.method1();
|
||||||
|
|
||||||
|
CustomProduct2 product2 = creator.createProduct(CustomProduct2.class);
|
||||||
|
product2.method2();
|
||||||
|
product2.method1();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
14
sjms/src/main/java/com/quinn/sjms/product/Creator.java
Normal file
14
sjms/src/main/java/com/quinn/sjms/product/Creator.java
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
package com.quinn.sjms.product;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 抽象工厂
|
||||||
|
*/
|
||||||
|
public abstract class Creator {
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 创建一个产品对象,其输入参数类型可以自行设置
|
||||||
|
* 通常为String、Enum、Class等,当然也可以为空
|
||||||
|
*/
|
||||||
|
public abstract <T extends Product> T createProduct(Class<T> c);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package com.quinn.sjms.product;
|
||||||
|
|
||||||
|
public class CustomProduct1 extends Product{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void method1() {
|
||||||
|
System.out.println("CustomProduct1.method1");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void method2() {
|
||||||
|
System.out.println("CustomProduct1.method2()");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package com.quinn.sjms.product;
|
||||||
|
|
||||||
|
public class CustomProduct2 extends Product{
|
||||||
|
@Override
|
||||||
|
public void method2() {
|
||||||
|
System.out.println("CustomProduct2.method2()");
|
||||||
|
}
|
||||||
|
}
|
||||||
13
sjms/src/main/java/com/quinn/sjms/product/Product.java
Normal file
13
sjms/src/main/java/com/quinn/sjms/product/Product.java
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
package com.quinn.sjms.product;
|
||||||
|
|
||||||
|
public abstract class Product {
|
||||||
|
|
||||||
|
//产品类的公共方法
|
||||||
|
public void method1(){
|
||||||
|
System.out.println("Product.method1");
|
||||||
|
//业务逻辑处理
|
||||||
|
}
|
||||||
|
//抽象方法
|
||||||
|
public abstract void method2();
|
||||||
|
|
||||||
|
}
|
||||||
22
sjms/src/main/java/com/quinn/sjms/proxy/Client.java
Normal file
22
sjms/src/main/java/com/quinn/sjms/proxy/Client.java
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
package com.quinn.sjms.proxy;
|
||||||
|
|
||||||
|
import java.lang.reflect.InvocationHandler;
|
||||||
|
import java.lang.reflect.Proxy;
|
||||||
|
|
||||||
|
public class Client {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
GamePlayer player = new GamePlayer("张三");
|
||||||
|
InvocationHandler handler = new GamePlayIH(player);
|
||||||
|
//获得类的class loader
|
||||||
|
ClassLoader cl = player.getClass().getClassLoader();
|
||||||
|
//动态产生一个代理者
|
||||||
|
IGamePlayer proxy = (IGamePlayer) Proxy.newProxyInstance(cl,
|
||||||
|
new Class[]{IGamePlayer.class},handler);
|
||||||
|
//登录
|
||||||
|
proxy.login("zhangSan", "password");
|
||||||
|
proxy.killBoss();
|
||||||
|
proxy.upgrade();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
19
sjms/src/main/java/com/quinn/sjms/proxy/GamePlayIH.java
Normal file
19
sjms/src/main/java/com/quinn/sjms/proxy/GamePlayIH.java
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
package com.quinn.sjms.proxy;
|
||||||
|
|
||||||
|
import java.lang.reflect.InvocationHandler;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
|
||||||
|
public class GamePlayIH implements InvocationHandler {
|
||||||
|
|
||||||
|
Object target;
|
||||||
|
|
||||||
|
public GamePlayIH(Object _obj){
|
||||||
|
this.target = _obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
|
||||||
|
Object invoke = method.invoke(proxy,args);
|
||||||
|
return invoke;
|
||||||
|
}
|
||||||
|
}
|
||||||
35
sjms/src/main/java/com/quinn/sjms/proxy/GamePlayer.java
Normal file
35
sjms/src/main/java/com/quinn/sjms/proxy/GamePlayer.java
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
package com.quinn.sjms.proxy;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class GamePlayer implements IGamePlayer {
|
||||||
|
private String name = "";
|
||||||
|
|
||||||
|
//构造函数限制谁能创建对象,并同时传递姓名
|
||||||
|
public GamePlayer(String _name) throws Exception{
|
||||||
|
this.name = _name;
|
||||||
|
}
|
||||||
|
|
||||||
|
//构造函数限制谁能创建对象,并同时传递姓名
|
||||||
|
public GamePlayer(IGamePlayer _gamePlayer,String _name) throws Exception{
|
||||||
|
if(_gamePlayer == null ){
|
||||||
|
throw new Exception("不能创建真实角色!");
|
||||||
|
}else{
|
||||||
|
this.name = _name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//打怪,最期望的就是杀老怪
|
||||||
|
public void killBoss() {
|
||||||
|
System.out.println(this.name + "在打怪!");
|
||||||
|
}
|
||||||
|
//进游戏之前你肯定要登录吧,这是一个必要条件
|
||||||
|
public void login(String user, String password) {
|
||||||
|
System.out.println("登录名为"+user + "的用户" + this.name + "登录成功!");
|
||||||
|
}
|
||||||
|
//升级,升级有很多方法,花钱买是一种,做任务也是一种
|
||||||
|
public void upgrade() {
|
||||||
|
System.out.println(this.name + " 又升了一级!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
25
sjms/src/main/java/com/quinn/sjms/proxy/GamePlayerProxy.java
Normal file
25
sjms/src/main/java/com/quinn/sjms/proxy/GamePlayerProxy.java
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
package com.quinn.sjms.proxy;
|
||||||
|
|
||||||
|
public class GamePlayerProxy{
|
||||||
|
private IGamePlayer gamePlayer = null;
|
||||||
|
//通过构造函数传递要对谁进行代练
|
||||||
|
// public GamePlayerProxy(String name){
|
||||||
|
// try {
|
||||||
|
// gamePlayer = new GamePlayer(this,name);
|
||||||
|
// } catch (Exception e) {
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//代练杀怪
|
||||||
|
public void killBoss() {
|
||||||
|
this.gamePlayer.killBoss();
|
||||||
|
}
|
||||||
|
//代练登录
|
||||||
|
public void login(String user, String password) {
|
||||||
|
this.gamePlayer.login(user, password);
|
||||||
|
}
|
||||||
|
//代练升级
|
||||||
|
public void upgrade() {
|
||||||
|
this.gamePlayer.upgrade();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
10
sjms/src/main/java/com/quinn/sjms/proxy/IGamePlayer.java
Normal file
10
sjms/src/main/java/com/quinn/sjms/proxy/IGamePlayer.java
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
package com.quinn.sjms.proxy;
|
||||||
|
|
||||||
|
public interface IGamePlayer {
|
||||||
|
//登录游戏
|
||||||
|
public void login(String user,String password);
|
||||||
|
//杀怪,网络游戏的主要特色
|
||||||
|
public void killBoss();
|
||||||
|
//升级
|
||||||
|
public void upgrade();
|
||||||
|
}
|
||||||
17
sjms/src/main/java/com/quinn/sjms/singleton/Singleton.java
Normal file
17
sjms/src/main/java/com/quinn/sjms/singleton/Singleton.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package com.quinn.sjms.singleton;
|
||||||
|
|
||||||
|
public class Singleton {
|
||||||
|
|
||||||
|
private static Singleton singleton = null;
|
||||||
|
//限制产生多个对象
|
||||||
|
private Singleton(){
|
||||||
|
}
|
||||||
|
//通过该方法获得实例对象
|
||||||
|
public static Singleton getSingleton(){
|
||||||
|
if(singleton == null){ // 懒汉式 // 饿汉式 全局静态变量已经New 了对象,无需判空
|
||||||
|
singleton = new Singleton();
|
||||||
|
}
|
||||||
|
return singleton;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -17,6 +17,7 @@ import java.util.Map;
|
|||||||
@Controller
|
@Controller
|
||||||
public class WXTokenController {
|
public class WXTokenController {
|
||||||
|
|
||||||
|
//9a677cd0b9b2dc4d387dd974db140a11
|
||||||
private Logger logger = LoggerFactory.getLogger("WXTokenController");
|
private Logger logger = LoggerFactory.getLogger("WXTokenController");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user