前言
开始写代码的时候,不会注意变量的访问修饰符。全部都是public就好,不会有什么读取问题。
这样的想法到了公司代码上面就不行了,要实现“高内聚低耦合”的理念,必然要对程序进行封装。
这也是代码优化的产物,公司老的代码就没有实现封装。

具体实现
公司代码是用C#写的,下面以C#为例来展现具体的封装。
代码如下

public class TestCase
{ 
    // 测试用例ID
    public int TCId;

    // 对象ID
    private string _objectId = string.Empty;
    public string ObjectId
    {
        get
        {
            return _objectId;
        }

        set
        {
            _objectId = value;
        }
    }
}

代码解释
TCId的访问修饰符public,根据微软文档意思为“访问不受限制”。
ObjectId同TCId。
_objectId的访问修饰符private,根据微软文档意思为“访问限于包含类”。

使用private关键字就意味着,TestCase类外的成员无法直接读写 "_objectId" 这个字段,这样就起了保护作用。
虽然无法直接读取 "_objectId",但因为使用了get, set方法,所以可以通过访问"ObjectId"这个字段间接访问。
get为读,set为写。如果只需要进行读取操作,那可以只写get方法,不写set方法。

如果想对set的写操作进行限制,可以看下面的扩展代码。

扩展代码

    private string _objectId = string.Empty;
    public string ObjectId
    {
        get
        {
            return _objectId;
        }

        set
        {
            if (_objectId != null)
            {
                _objectId = value;
            }

            else _objectId = "ObjectId is null";
        }
    }

上面的代码主要对ObjectId类的写方法进行限制,限制条件是一个简单的if else判断。
"_objectId"字段为空时,会赋值成"ObjectId is null",非空则是非空取值。

封装优点总结
根据上面的解释,进行封装的好处如下:

  1. 隐藏TestCase类内成员。
  2. 限制读写,比如只读可以只写get方法。
  3. 限制写操作,比如可以通过条件判断来控制具体赋值。

参考资料

  1. https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/access-modifiers
  2. https://www.cnblogs.com/yuyexiaoxiao/p/12389407.html
 posted on 2021-03-23 14:41  Basic++  阅读(162)  评论(0)    收藏  举报