zoukankan      html  css  js  c++  java
  • 入门设计模式之状态模式

    学习更多设计模式请参考:入门设计模式之汇总篇 

    状态模式:允许一个对象在其内部状态改变时改变其行为。

    举一个简单的小例子,我们在对一个小姐姐搭讪的时候,根据小姐姐的心情如何我们可能会得到不同的回复。

    看一下类图

    1. Girl:抽象状态接口:用于封装男孩对象搭讪小姐姐获得回复的接口
    2. AngryGirl、HappyGirl:两个状态实现类。不同的状态就对应了男孩在不同时刻获得的回复。
    3. Boy:持有一个状态实例。

    看一下代码:

    public interface Girl {
        public void say();
    }
    
    public class AngryGirl implements Girl {
        @Override
        public void say() {
            System.out.println("滚");
        }
    }
    
    public class HappyGirl implements Girl {
        public void say(){
            System.out.println("你好哦,小哥哥");
        }
    }
    
    public class Boy {
        private Girl girl;
    
        public void say(){
            this.girl.say();
        }
    
        public void setGirl(Girl girl){
            this.girl=girl;
        }
    }
    

    如此,Boy持有不同状态的Girl对象时获取的回复是不同的,这样就实现了一个简单的状态模式。




    本文出自https://zhixiang.org.cn/#/blog/read/ccfb4d18-3b6c-4a35-a238-7b19fafe73a1,转载请保留。

  • 相关阅读:
    0827IO作业
    0927集合作业
    初学集合,以及泛型
    异常课——抛出
    Python环境变量配置
    安装Python
    MySQL多表操作
    MySQL增删改查
    Group by分组详解
    MySQL常用函数
  • 原文地址:https://www.cnblogs.com/zhixiang-org-cn/p/9270657.html
Copyright © 2011-2022 走看看