前言
开始写代码的时候,不会注意变量的访问修饰符。全部都是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",非空则是非空取值。
封装优点总结
根据上面的解释,进行封装的好处如下:
- 隐藏TestCase类内成员。
- 限制读写,比如只读可以只写get方法。
- 限制写操作,比如可以通过条件判断来控制具体赋值。
参考资料
posted on
浙公网安备 33010602011771号