package com.my.module;
import java.util.HashMap;
import java.util.Map;
/**
* 子系统或者细节功能结构
* 如,阶段性,不同任务实现
*/
public abstract class Father {
public abstract void getArgs(User user,Object... args);
public abstract int getType();
public static Map<Integer ,Father> map=new HashMap<>();
static{
map.put(1, new C1());
map.put(2, new C2());
}
public static void main(String[] args) {
doSomeThing(1);
}
public static void doSomeThing(int type) {
User user =new User();
map.get(type).getArgs(user);
}
}
package com.my.module;
public class C1 extends Father {
@Override
public void getArgs(User user,Object... args) {
}
@Override
public int getType() {
return 1;
}
}
package com.my.module;
public class C2 extends Father {
@Override
public void getArgs(User user,Object... args) {
System.out.println("c2 "+args[0]);
}
@Override
public int getType() {
return 2;
}
}
package com.my.module;
import java.util.HashMap;
import java.util.Map;
public class TaskCenter {
/**
* Integer 阶段
* Map<Integer,Integer> 类型 次数
*/
public static Map<Integer ,Map<Integer,Integer>> hm=new HashMap<>();
static {
Map<Integer,Integer> map1=new HashMap<>();
map1.put(1, 1);//阶段1的任务1需要完成1次
map1.put(2, 2);//阶段1的任务2需要完成2次
hm.put(1, map1);//阶段1
Map<Integer,Integer> map2=new HashMap<>();
map2.put(1, 2);//阶段2的任务1需要完成2次
map2.put(2, 2);//阶段2的任务2需要完成4次
hm.put(2, map2);
}
public static void isArrive(User user,int taskType) {
int num=hm.get(user.stage).get(taskType);
}
}
package com.my.module;
import java.util.HashMap;
import java.util.Map;
public class User {
/**
* 阶段性
*/
public int stage;
/**
* 完成任务 任务id,任务数量
*/
public Map<Integer,Integer> hm=new HashMap<>();
}