zoukankan      html  css  js  c++  java
  • 成员变量太多怎么破?

      在软件开发过程中我们经常遇到某个类的成员变量越来越多,显的乱糟糟的,有没有一种优雅的解决方法呢?如果大多是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

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

  • 相关阅读:
    websocket1
    webpack 入门三
    weboack 入门二
    webpack 入门一
    输入一个url发生了什么
    http详解
    JavaScript对象详解
    javaScript垃圾回收机制
    js数据类型与隐式类型转换
    iOS证书申请、AppStore上架流程
  • 原文地址:https://www.cnblogs.com/gujf2016/p/6268551.html
Copyright © 2011-2022 走看看