Java 桥接模式:设计游戏角色创建系统
首先,我们需要定义角色类(Character)及其子类 Man 和 Female:
public abstract class Character {
protected Race race;
protected Gender gender;
protected Job job;
public Character(Race race, Gender gender, Job job) {
this.race = race;
this.gender = gender;
this.job = job;
}
public abstract void display();
}
public class Man extends Character {
public Man(Race race, Job job) {
super(race, Gender.MAN, job);
}
@Override
public void display() {
System.out.println('This is a man of ' + race + ' race, working as a ' + job + '.');
}
}
public class Female extends Character {
public Female(Race race, Job job) {
super(race, Gender.FEMALE, job);
}
@Override
public void display() {
System.out.println('This is a woman of ' + race + ' race, working as a ' + job + '.');
}
}
接着,我们需要定义种族类(Race)及其子类 Human、Dwarf、Orc 和 Tauren:
public interface Race {
String toString();
}
public class Human implements Race {
@Override
public String toString() {
return 'Human';
}
}
public class Dwarf implements Race {
@Override
public String toString() {
return 'Dwarf';
}
}
public class Orc implements Race {
@Override
public String toString() {
return 'Orc';
}
}
public class Tauren implements Race {
@Override
public String toString() {
return 'Tauren';
}
}
然后,我们需要定义职业类(Job)及其子类 Warrior、Mage、Priest 和 Hunter:
public interface Job {
String toString();
}
public class Warrior implements Job {
@Override
public String toString() {
return 'Warrior';
}
}
public class Mage implements Job {
@Override
public String toString() {
return 'Mage';
}
}
public class Priest implements Job {
@Override
public String toString() {
return 'Priest';
}
}
public class Hunter implements Job {
@Override
public String toString() {
return 'Hunter';
}
}
最后,我们需要定义桥接类(Bridge)来连接角色、种族和职业:
public class Bridge {
public static void main(String[] args) {
Character manWarrior = new Man(new Human(), new Warrior());
Character femaleMage = new Female(new Orc(), new Mage());
manWarrior.display();
femaleMage.display();
}
}
输出结果为:
This is a man of Human race, working as a Warrior.
This is a woman of Orc race, working as a Mage.
桥接模式的优势:
- **解耦角色、种族和职业:**桥接模式将角色、种族和职业的实现分离,使得它们可以独立变化,不会相互影响。
- **灵活组合:**通过桥接模式,我们可以自由组合不同的性别、种族和职业,创建出各种各样的角色。
- **易于扩展:**如果需要添加新的性别、种族或职业,只需要添加新的类,而不需要修改现有的代码。
原文地址: https://www.cveoy.top/t/topic/nS4h 著作权归作者所有。请勿转载和采集!