面向对象系统分析和设计综合实验报告4

西南科技大学计算机学院 《面向对象系统分析和设计》实验报告 private void addReservesEncrypt() {

System.out.println(\反向加密\); }

@Override

public void encrypt() { } }

public class SuperEncrypt implements EncryptComponet{

public SuperEncrypt(EncryptComponet encryptComponet) { addSuperEncrypt(); }

private void addSuperEncrypt() {

System.out.println(\最高加密算法\); }

@Override

public void encrypt() { } }

public class TranslateEncrypt implements EncryptComponet{

public TranslateEncrypt(EncryptComponet encryptComponet) { addTranslateEncrypt(); }

private void addTranslateEncrypt() { System.out.println(\移动加密\); }

@Override

public void encrypt() { } }

public class Client {

public static void main(String[] args) { EncryptComponet s0,s1,s2,s3; s0 = new RawData();

s1 = new TranslateEncrypt(s0); s2 = new ReversEncrypt(s1); s3 = new SuperEncrypt(s2); s3.encrypt(); } }

7. 现需要设计一个可以模拟各种动物行为的机器人,在机器人中定义了一系列方法,如机器人叫喊方法cry()、机器人移动方法move()等。如果希望在不修改已有代码的基础上使得机器人能够像狗一样叫,像狗一样跑,使用适配器模式进行系统设计。

1)类图

13

西南科技大学计算机学院 《面向对象系统分析和设计》实验报告

2) 实现代码

public interface Robot { public void cry(); public void move(); }

public class Dog {

public void barks(){ }

public class Dogadapter extends Dog implements Robot{ @Override

public void cry() { barks(); }

@Override

public void move() { run(); } }

public class Client {

public static void main(String[] args) { Dogadapter dogrobot = new Dogadapter(); dogrobot.move(); dogrobot.cry(); } }

14

System.out.println(\狗在叫\); }

public void run(){

System.out.println(\狗在跑\); }

西南科技大学计算机学院 《面向对象系统分析和设计》实验报告

3) 实现结果

8. 在NBA作为外籍中锋,我需要翻译,具体场景描述如下: ? 姚明刚来到NBA,身材够高,球技够好; ? 但是英语不是很懂,听不懂教练的战术安排; ? 球员分为前锋、中锋和后卫; ? 教练会给球员分配进攻、防守任务。 现请使用适配器模式模拟这个场景。 1) 类图

2) 实现代码:

public abstract class Player {

protected String name; public Player(String name) {

this.name = name; }

15

西南科技大学计算机学院 《面向对象系统分析和设计》实验报告 public abstract void attack(); public abstract void defense();

}

public class Guards extends Player {

public Guards(String name) {

super(name); }

public void attack() {

System.out.println(\后卫\ + name + \进攻\); }

public void defense() {

System.out.println(\后卫\ + name + \防守\); }

}

public class Center extends Player {

public Center(String name) {

super(name); }

public void attack() {

System.out.println(\中锋\ + name + \进攻\); }

public void defense() {

System.out.println(\中锋\ + name + \防守\); }

}

public class ForeignCenter {

private String name; public void attack() {

System.out.println(\外籍中锋\ + name + \进攻\); }

16

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4