将参数传递给构造函数会违反封装吗?

时间:2016-07-31 16:09:19

标签: oop

封装:

  
      
  • 限制直接访问某些对象组件的语言机制。
  •   
  • 一种语言结构,它有助于将数据与操作该数据的方法捆绑在一起。
  •   
class Cat
{
    private string catName;
    private CatBreed catBreed;

    public Cat(string name, CatBreed breed)
    {
        catName = name;
        catBreed = breed;
    }

    // methods that use catName and catBreed fields
    ...
}

用法:

var cat = new Cat("Thomas", CatBreed.Abyssinian);
...

同事试图说服传递构造函数的参数违反了封装,因为外部系统知道Cat类的内部实现。它们很严格吗?

1 个答案:

答案 0 :(得分:0)

构造函数参数告诉任何外部系统关于类实现的内容是什么? 听起来像是胡说八道。