• 成员变量太多怎么破?


      在软件开发过程中我们经常遇到某个类的成员变量越来越多,显的乱糟糟的,有没有一种优雅的解决方法呢?如果大多是BOOL型可以使用BitArray来管理这些变量,其它类型可以创建一个数据结构包含进去。

    BitArray: Manages a compact array of bit values, which are represented as Booleans, where true indicates that the bit is on (1) and false indicates the bit is off (0).

      

    public class BitArrayTest
            {
                private BitArray bitArray;
    
                public BitArrayTest()
                {
                    int leng = Enum.GetValues(typeof(Flag)).Length;
                    bitArray = new BitArray(leng);
                }
    
                public bool GetFlag(Flag flag)
                {
                    lock(bitArray.SyncRoot)
                    {
                        return bitArray[(int)flag];
                    }
                }
                public void SetFlag(Flag flag, bool result)
                {
                    lock(bitArray.SyncRoot)
                    {
                        bitArray[(int)flag] = result;
                    }
                }
    
                public void ResetFlag()
                {
                    lock (bitArray.SyncRoot)
                    {
                        bitArray.SetAll(false);
                    }
                }
    
                public void SetFlagTrue(Flag flag)
                {
                    SetFlag(flag, true);
                }
    
                public void SetFlagFalse(Flag flag)
                {
                    SetFlag(flag, false);
                }
            }
    View Code

    比如有成员变量flagOne,flagTwo, flagThree,可以通过一个枚举类映射变量:

    public enum Flag
            {
                flagOne,
                flagTwo,
                flagThree,
            }
    View Code

    设置和读取变量:

    BitArrayTest test = new BitArrayTest();
                test.SetFlagTrue(Flag.flagOne);
                if (test.GetFlag(Flag.flagOne))
                {
    
                }
    View Code

    代码是不是变得整洁了呢?

  • 相关阅读:
    MySQL索引
    MySQL事物
    《软件设计师》——计算机网络
    《软件设计师》考点分布
    《软件设计师》——UML
    《软件设计师》——法律法规与标准化知识
    《软件设计师》——多媒体基础
    《软件设计师》——信息安全基础
    《软件设计师》——数据库系统
    《软件设计师》——数据结构和算法基础
  • 原文地址:https://www.cnblogs.com/gujf2016/p/6268551.html
Copyright © 2020-2023  润新知