package designpattern.composite; public abstract class target { private string name;// 名称 public abstract void add(target target);// 增加节点 public abstract void remove(target target);// 删除节点 public abstract void move();// 移动 public abstract void attack();// 攻击 public string getname() { return name; } public void setname(string name) { this.name = name; } }
package designpattern.composite; public class player extends target { private string name; public player(string name) { super(); this.name = name; } @override public void move() { system.out.println("[" + name + "]正在移动"); } @override public void attack() { system.out.println("[" + name + "]发动攻击"); } @override public void add(target target) { } @override public void remove(target target) { } public string getname() { return name; } public void setname(string name) { this.name = name; } @override public string tostring() { return "player [name=" + name + "]"; } }
package designpattern.composite; import java.util.arraylist; import java.util.list; public class team extends target { list<target> team = new arraylist<>(); @override public void add(target target) { team.add(target); system.out.println(target.getname() + "加入队伍"); } @override public void remove(target target) { team.remove(target); system.out.println(target.getname() + "离开队伍"); } @override public void move() { system.out.println(teammembers() + "组成的队伍正在移动"); } @override public void attack() { system.out.println(teammembers() + "组成的队伍发动攻击"); } private string teammembers() { stringbuffer stringbuffer = new stringbuffer(); stringbuffer.append("["); for (target target : team) { stringbuffer.append(target.getname() + " "); } stringbuffer.append("]"); return stringbuffer.tostring(); } }
package designpattern.composite; public class client { public static void main(string[] args) { player captainamerica = new player("美国队长"); captainamerica.move(); captainamerica.attack(); system.out.println("----------复联成立----------"); player ironman = new player("钢铁侠"); player hulk = new player("绿巨人"); team team = new team(); team.add(captainamerica); team.add(ironman); team.add(hulk); team.move(); team.attack(); system.out.println("----------发生矛盾--------"); team.remove(ironman); team.move(); team.attack(); } }
[美国队长]正在移动 [美国队长]发动攻击 ----------复联成立---------- 美国队长加入队伍 钢铁侠加入队伍 绿巨人加入队伍 [美国队长 钢铁侠 绿巨人 ]组成的队伍正在移动 [美国队长 钢铁侠 绿巨人 ]组成的队伍发动攻击 ----------发生矛盾-------- 钢铁侠离开队伍 [美国队长 绿巨人 ]组成的队伍正在移动 [美国队长 绿巨人 ]组成的队伍发动攻击
如对本文有疑问, 点击进行留言回复!!
网友评论