Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(197评价)
价格: 4431.00元
依赖倒置原则的实现
是天空在流眼泪吗发起了问答2017-07-24
2
回复
293
浏览

高层的不依赖底层代码的改动而改动,按咱课里说的,我不去调用方法,而是去调用接口,这个接口有不同实现。

那么它是如何通过一个配置文件(或者其他方法)来实现的。

我具体要怎么去写呢,怎么通过一个接口去调用它的实现呢。(不会是用反射吧 0.0)

public interface ICalculate {
    float GetResult(float a, float b);

}
public class CalculateAdd : MonoBehaviour,ICalculate {
    public float GetResult(float a, float b) {
        return a + b;
    }
}
public class CalculateRemove : MonoBehaviour,ICalculate {
    public float GetResult(float a, float b) {
        return a - b;
    }
}

调用它们

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

public class TestScript : MonoBehaviour,IDragHandler,IDropHandler{

    ICalculate calculate;

    public void OnDrag(PointerEventData eventData) {
        //TODO ??
    }

    public void OnDrop(PointerEventData eventData) {
        //TODO ??
    }
}

 

 

所有回复
  • siki 2017-07-24
    ICalculate calculate=new CalculateAdd();
    或者 = new CalculateRemove();
    
    调用方法直接调用
    calculate.GetResult(xx,xx);
    这样就可以了,
    这里是使用接口调用的,并不是使用的具体的实现调用的
    
    

     

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • siki 2017-07-24
    如果你这样写
    CalculateAdd c = new CalculateAdd()
    这样就是直接使用的实现 这个实现是底层模块
    相当于我们现在写的代码 是高层
    高层依赖于底层

     

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!