首页 > 其他分享 >找出对应的设计模式-优化下面的场景开发。

找出对应的设计模式-优化下面的场景开发。

时间:2022-08-16 15:22:19浏览次数:59  
标签:找出 场景 dog cat Person Dog msg Cat 设计模式

package com.iit.observer;
//研究性的作业:
//业务场景:(到了吃饭时间)管理员就调用sendMsg方法,
//         需要向Cat和Dog发送一条消息。
//发布,关注(订阅):Cat和Dog关注了张三这个Person;当Person有活动时,就要能够通知Cat和Dog。
public class Person {
    private Cat cat;
    //缺点:增加需要通知的成员,改动量比较大。
    private Cat cat2;
    private Cat cat3;
    private Dog dog;
    public  Person(Cat cat,Dog dog){
        this.cat = cat;
        this.dog = dog;
    }

    public void sendMsg(String msg){
        this.cat.update(msg);
        this.dog.update(msg);
    }

    public static void main(String[] args) {
        Cat cat = new Cat();
        Dog dog = new Dog();
        Person p = new Person(cat,dog);
        p.sendMsg("吃鱼..");
    }
}


class Cat{
    public void update(String msg){
        System.out.println("cat收到:"+msg);
        System.out.println("cat:慢慢吃...");
    }
}

class Dog{
    public void update(String msg){
        System.out.println("dog收到:"+msg);
        System.out.println("dog:大口吃...");
    }
}

 

搜索

复制

标签:找出,场景,dog,cat,Person,Dog,msg,Cat,设计模式
From: https://www.cnblogs.com/xiaoyongdata/p/16591671.html

相关文章

  • 设计模式22 state状态模式
       状态模式应用的场景 -----工作流,闸口,  投票--几次正常超过多少警告刷票。把几个不同的状态找出相同的方法  定一个抽象类。实现和重写抽象基类, ......
  • 设计模式——创建型设计模式
    创建型设计模式争对对象/类创建时的优化工厂方法模式(了解)通过定义顶层抽象工厂类,通过继承的方式,针对于每一个产品都提供一个工厂类用于创建。情况:只适用于简单对象,......
  • 【Java面试】聊聊你知道的设计模式
    “聊聊你知道的设计模式!”这个问题很简单,但是要让面试官认可你的回答,那还是得花点心思。大家好,我是Mic,一个工作了14年的Java程序员。今天给大家分享一下,当遇到这种比较......
  • 设计模式-代理模式
    1.1基本介绍代理模式:为一个对象提供一个替身,以控制对这个对象的访问,即通过代理对象访问目标对象。这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展......
  • 设计模式-单例模式
    1.单例模式介绍所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比......
  • 设计模式之外观模式
    本文通过老王改造小王公司的整体架构来说明外观模式,所谓的外观模式其实就是在各种复杂的子系统中抽象出来一个接口,隐藏具体的实现细节,调用方调用时只需要调用接口即可。为......
  • TCP和UDP的应用场景
    传输层的两个协议,TCP(TransmissionControlProtocol,传输控制协议)和UDP(UserDatagramProtocol,用户数据报协议),有各自的应用场景。TCP应用场景TCP为应用层协议提供可靠传输......
  • 技术分享 | 如何模拟真实使用场景?mock 技术来帮你
    原文链接mock是一种通过代理修改请求与响应,从而辅助构造更多应用场景的工具。比如在工作中,可能需要mock第三方的回调给到测试人员测试的环境,从而更顺利的开展测试工作,......
  • redis五种数据类型及使用场景(转载)
    (19条消息)【Redis】五种数据类型及其使用场景_编程芝士的博客-CSDN博客_redis有几种数据类型......
  • 华为5700三层交换机在生产场景中做策略路由
     我们在工作中经常会遇到这样的问题,就是有两条线路,一条电信一条移动,一条ADSL一条光纤。诸如此类的。但由于有三层交换机,我们往往把默认路由就指向了某一个出口。这样我......