17.适配器模式
来源:互联网 发布:win7人工智能 编辑:程序博客网 时间:2024/06/09 20:27
package adapterMode;/* * 适配器模式: * 将一个类的接口转换成客户希望的另外一个接口 * Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 * * * 姚明打篮球 刚去NBA 听不懂外语怎么办 * */public class AdapterMode {public static void main(String[] args) {Player p = new Forwards("小六子");p.Attack();Player q = new Guards("傻大个");q.Attack();Player w = new Center("姚明");w.Attack();/** * 虽然这里输出了 中锋姚明进攻! 但是 姚明刚开始在NBA是听不懂教练说话的 * * 添加一个外籍中锋 +翻译者类 */Player p1 = new Forwards("小六子");p1.Attack();Player q1 = new Guards("傻大个");q1.Attack();Player w1 = new Translator("姚明");w1.Attack();}}/* * 球员抽象类 */abstract class Player{public String name;public abstract void Attack();public abstract void Defense();}/* *前锋 */class Forwards extends Player{public Forwards(){}public Forwards(String name){this.name = name;}public void Attack() {System.out.println("前锋"+name+"进攻!");}public void Defense() {System.out.println("前锋"+name+"防守!");}}/* *中锋 */class Center extends Player{public Center(){}public Center(String name){this.name = name;}public void Attack() {System.out.println("中锋"+name+"进攻!");}public void Defense() {System.out.println("中锋"+name+"防守!");}}/* *后卫 */class Guards extends Player{public Guards(){}public Guards(String name){this.name = name;}public void Attack() {System.out.println("后卫"+name+"进攻!");}public void Defense() {System.out.println("后卫"+name+"防守!");}}/* * 外籍中锋 */class ForeignCenter{private String name;public void 进攻(){System.out.println("外籍中锋"+name+"进攻!");}public void 防守(){System.out.println("外籍中锋"+name+"防守!");}public String getName() {return name;}public void setName(String name) {this.name = name;}}class Translator extends Player{ private ForeignCenter Center = new ForeignCenter(); public Translator(String name){ Center.setName(name); }@Overridepublic void Attack() {Center.进攻();}public void Defense() {Center.防守();}}
阅读全文
0 0
- 17.适配器模式
- 适配器及适配器模式
- 适配器及适配器模式
- 适配器模式(类适配器)
- 适配器模式(默认适配器)
- 适配器模式(对象适配器)
- 适配器模式-类适配器
- 适配器模式-对象适配器
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 16.状态模式
- sdl实现texture旋转
- (9) Shell 输入输出重定向
- express-7-request
- 几个基础算法介绍和实现——选择排序
- 17.适配器模式
- code review
- (10) Shell 实战之Tomcat 重部署
- Web前端-HeadFirst-笔记-CH10-简写vs长形式
- Markdown-----基础语法
- 18.备忘录模式
- linux系统ubuntu环境下修改MySQL (V5.7.18)的密码
- 58 linux i2c设备驱动之eeprom驱动
- articles about network queue and linux sysctl parameters