代码设计思路总结1 接口设计 传值设计

关于代码设计的一些收获。

Part1:

最近关于代码设计的一些收获,将一些功能提炼成接口,这样代码清晰,使用也会更方便。
使用前register,使用过程中就能调用接口相关的函数。

    public class Test : ITestInterface
	{
	    public string GetInfo1()
	    {
	        return "info1 of Test";
	    }
	    public string GetInfo2()
	    {
	        return "info2 of Test";
	    }
	}

    public interface ITestInterface
    {  
        string GetInfo1();
        string GetInfo2();
    }

    public class ATest : MonoBehaviour
    {
        private ITestInterface mInterface;
        public void Register(ITestInterface @interface)
        {
            mInterface = @interface;
        }
        public void Start()
        {
            Register(new Test());
        }
        public void Update()
        {
            Debug.Log(mInterface.GetInfo1());
        }
    }

part2

代码设计中的关于传值的一些收获。对于常用到的信息,可以提炼一个结构出来,将这个结构在程序中进行传递,这样参数的增删会比较方便,改动地方少也能减少bug.

	public class Player
	{
	   public int Gold;
	   public int Exp;
	}
    public string GetAttr(int Gold, int Exp)
    {
        return $"{Gold} {Exp}";
    }

    public string GetAttr(Player playerData)
    {
        return $"{playerData.Gold} {playerData.Exp}";
    }

使用结构传递的话如果后期增加一个参数,只需要在GetAttr中调用,前面那种方法还需要在每一个调用的地方都进行修改,比较容易出问题

Part3:

对于属性我们可以提前计算,当相关的参数有修改时我们就将属性进行修改。

        public class Player1
{
    public int Gold
    {
        get => Gold;
        set { Attr = $"{value} {Exp}"; }
    }

    public int Exp
    {
        get => Exp;
        set { Attr = $"{Gold} {value}"; }
    }

    private string Attr;

    public string GetAttr(Player playerData)
    {
        return playerData.Attr;
    }
}

//存在一些情况,我们的参数频繁修改,但是并不会经常去获取属性,这个时候可以设置标识符,在必要的时候再对属性进行计算。

public class Player2
{
    public int Gold
    {
        get => Gold;
        set { bAttrDirty = true; }
    }

    public int Exp
    {
        get => Exp;
        set { bAttrDirty = true; }
    }
    
    private bool bAttrDirty;
    
    public string Attr;

    public string GetAttr()
    {
        if (bAttrDirty)
        {
            Attr = $"{Gold} {Exp}";
            bAttrDirty = false;
        }

        return Attr;
    }
}

发现自己在代码设计的时候有点混乱,还是需要及时总结。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值