学习Head First设计模式Day1

Java设计模式之设计模式

策略模式:策略模式定义了算法簇,分别封装起来,让他们之间可以互相替换,此设计模式让算法的变化独立于使用算法的客户.

全面的想法

一个简单的代码实现:
public abstract class Character {
    WeaponBehaveior weapon;
    abstract void fight();
    public void show(){
        weapon.useWeapon();
    }
    public void setWeapon(WeaponBehaveior wb){
        weapon=wb;
        }
}

声明一个父类

public interface WeaponBehaveior {
    void useWeapon();
}

声明接口


public class KnifeBehavior implements WeaponBehaveior {
    public void useWeapon() {
        System.out.println("use Kinfe fight");
    }

}
public class AxeBehavior implements WeaponBehaveior {
        @Override
    public void useWeapon() {
        System.out.println("use Axe fight");
    }

}

接口的实现类

public class King extends Character {
    private String name;
    public King(String name){
        this.name=name;
        weapon=null;
    }
    @Override
    void fight() {
        System.out.println("I'm fight");
    }

}

父类的子类,继承父类的weapon

public class DesignMode {
        public static void main(String[] args) {
        Character ch=new King("Tom");
        ch.setWeapon(new KnifeBehavior());
        ch.fight();
        ch.show();

    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 设计模式汇总 一、基础知识 1. 设计模式概述 定义:设计模式(Design Pattern)是一套被反复使用、多...
    MinoyJet阅读 3,970评论 1 15
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,764评论 18 399
  • 1 场景问题# 1.1 报价管理## 向客户报价,对于销售部门的人来讲,这是一个非常重大、非常复杂的问题,对不同的...
    七寸知架构阅读 5,130评论 9 62
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,227评论 25 708
  • 做自己应该做的事就像流逝的昨天,待它从你身边溜走的时候你才发现原来你错了。 做自己可以做的事就像你束手无策的今天,...
    灯下孤影阅读 188评论 0 0