Unity C#基础:委托与事件

在面试中,委托与事件几乎是必问的。如果面试官和面试者互不相识,面试官不问委托,那我严重怀疑这家公司的技术水平,这个可以说是C#入门与掌握的分水岭之一,非常重要。所以,这里我整理一片笔记,对委托和事件做一个全面的整理和归纳。这里重在理解,只有理解了才能真正掌握它。


目录

1. 为什么C#会有委托事件?

解决观察者模式的缺陷。这里又引申出一个问题,什么是观察者模式,观察者模式的缺陷又是什么?在回答这个问题前,我们其实已经知道一个答案,那就是先有设计模式中的观察者模式,再有委托事件这一技术。它有一个前后顺序,如果你要彻底学会委托事件,那么就要先学会观察者模式,还要了解观察者模式的缺陷。

2.观察者模式的缺陷:

观察者模式是对主题对象和观察者对象进行解耦,使双方都依赖与抽象,而不是依赖于对方的具体对象,使双方的变化都不会影响到对方的具体对象。当多个对象需要根据一个对象的状态发生相应的改变或操作时,可使用观察者模式。

这里我写一个小demo,非常简洁。还是猫和老鼠,猫是主题对象,人和老鼠是观察者。猫叫的时候,人和老鼠要执行相应操作。

使用观察者模式实现这一功能


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ObserverCatDemo : MonoBehaviour
{
    void Start()
    {
        CatSubject cat = new CatSubject();
        Mouse mouse = new Mouse();
        Person person = new Person();
        cat.Add(mouse);
        cat.Add(person);
        cat.Call();
    }
}
public abstract class Subjectss
{
    public abstract void Add(Observerss observer);
    public abstract void Remove(Observerss observer);
    public abstract void Call
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值