encapsulation相关内容

什么时候在C ++中使用“friend”?

我一直在阅读 C ++常见问题,对于 friend 声明。我个人从来没有使用它,但我有兴趣探索的语言。 使用 friend ?的一个很好的例子是什么? 编辑: 阅读常见问题解答更多我喜欢 >> 运算符重载并添加为这些类的朋友。但我不知道如何这不打破封装。 解决方案 首先(IMO)不要听那些说朋友的人是没有用的。它是有用的。在许多情况下,您将拥有不打算公开提 ..
发布时间:2016-10-11 20:08:46 C/C++开发

私有,公共和受保护继承之间的区别

我查看了SO,无法找到 public , private 之间的区别的良好解释; protected 在C ++中继承。我发现的所有问题都涉及具体案例。一般来说有什么区别? 解决方案 为了回答这个问题,我想先用自己的话来描述成员的访问者。如果你已经知道这一点,请跳到“下一个”标题。 我知道有三个访问器: public , protected 和 private 。 让: ..
发布时间:2016-10-11 19:49:49 C/C++开发

你经常看到C#速记getter / setter方法的滥用?

在C#中,您可以创建的getter /比其他语言更简单的方法制定者: 公众诠释FooBar的{搞定;组; } 这将创建一个内部的私有变量,你不能直接解决,与外部财产“FooBar的'直接访问它。 我的问题是 - 你经常看到这种滥用?这似乎是它具有较高的潜力,往往破坏封装最佳实践。不要误会我的意思,我在你的代码库使用它作为合适的,只读只写类型的属性呢局部变化,但你有 ..
发布时间:2016-10-01 00:19:28 C#/.NET

C#中:为收藏范例封装

我想知道其中哪些人会被认为是最干净的还是最好使用以及为什么。 其中之一暴露了乘客名单,这让用户添加和删除等其他隐藏的名单,只有让用户一一列举,并添加使用一种特殊的方法。 例1 类客车 { 公开的IEnumerable<&人GT;乘客{{返回乘客; }} 私有列表<乘客GT;乘客; 公共巴士() { 乘客=新的List<客运及GT;(); } ..
发布时间:2016-09-23 23:29:49 C#/.NET

TDD,DDD和封装

经过几年后的坏习惯在我工作的地方,从'建筑师'传世认为必须有一个更好的办法,我最近一直在读围绕TDD和DDD和我想的原则和做法将是我们写的软件的复杂性非常合适。 然而,许多TDD的样品我见过调用域对象的方法,然后测试性能对象,以确保正确执行的行为。 在另一方面,一些尊敬的业内人士(Greg Young的最明显的因此与他的CQRS会谈)主张充分通过删除所有的'干将'封装每个域对象。 ..
发布时间:2016-09-22 19:47:09 C#/.NET

封装C#新手

新的C#,据我所知,封装仅仅是“数据保护”的一种方式。但我还不清楚。我认为的点的get和set访问是要添加这些方法中测试,以检查是否参数满足一定条件,允许外部函数来获取和设置任何东西,这样才: 私人字符串MYNAME; 公共字符串MYNAME; //这是一个属性,以调校妥当,C#,这台支持字段。 私人字符串MYNAME =“玛丽”; //支持字段。 公共字符串MYNAME // ..
发布时间:2016-09-19 12:18:54 C#/.NET

访问DLL方法

结果 我准备这样做的一些功能对我的客户一些C#DLL。结果 的事情是,我也使用同一个DLL。结果 我怎么能使一些方法提供给他,对我所有可用的方法。结果 谢谢,结果 解决方案 使用一个共享的代码库 简单地编译两个项目。其中包含了您提供给客户的DLL源,另一个包含所有源代码,您留给自己。 优点:他们没有看到有人要保留自己的来源,而不必设立任何形式的特殊托管 - 只是给他们的 ..
发布时间:2016-09-18 12:43:14 C#/.NET

什么是在C#中使用私有变量的优势

示例代码(替代代码如下), // person.cs 使用系统; 类Person { 私人字符串MYNAME =“N / A”; //声明string类型的Name属性: 公共字符串名称 { 得到 { 返回MYNAME; } 组 { MYNAME =价值; } } 公共重写字符串的ToString() { 返回“NAME =”+姓名; } 公共静 ..
发布时间:2016-09-18 12:04:16 C#/.NET

模式的创建一个简单而有效的值类型

动机: 在阅读的码味:自动属性他说接近尾声: 底线是该自动属性很少适当的。 在实际上,它们当属性的类型是一个 值为类型和所有可能的值是允许只适合 他给 INT温度作为臭味的例子,并建议最好的解决办法是单位具体的值类型一样摄氏度。所以我决定尝试写封装了所有边界检查和类型转换逻辑中被越来越的 SOLID 基本要求: 不可能有一个无效值 封装转换操作 Effient ..
发布时间:2016-09-08 18:47:36 C#/.NET

如何做一个参考type属性"只读"

我有一个类酒吧包含引用类型富私有字段。我想在一个公共财产暴露富,但我不希望该属性的消费者能够改变富 ...但应可变内部由酒吧,即我不能让现场只读 。 所以,我想的是: 私人_Foo; 公共美孚 { {返回只读_Foo; } } ...这当然是无效的。我可以返回富(assumming这是 IClonable )的克隆,但是这不是明摆着给消费者。我应该改变属 ..
发布时间:2016-09-08 18:07:02 C#/.NET

什么是使用内部特性的好处?

访问来自会员上课的时候​​之外,但指的是类变量内部时,是它更好地满足其私有成员打电话,或者用自己的干将封装显然是有益的和必要的?如果您的getter直接返回变量,有任何性能差异 解决方案 不应该有一个显著的性能差异,你坚持使用属性的原因是因为这是封装的整点。它使那些私有成员的所有访问一致性和控制。所以,如果你想改变属性的getter / setter你没有想到“我需要在其他地方复制相同的功 ..
发布时间:2016-08-29 14:57:00 C#/.NET

getter和setter是不好的面向对象的设计?

getter和setter是坏 简单阅读了上面的文章中,我发现,getter和setter方法​​是不好的面向对象设计,因为他们去反对封装和数据隐藏应尽量避免。由于这是怎么能避免创建对象时,如何可以在一个模型对象要考虑到这一点。的情况下 在需要一个getter或setter可使用的其他替代品的情况下? 感谢。 解决方案 由自己或吸气制定者都不会坏的面向对象设计。 什么是坏的编码习惯 ..
发布时间:2016-08-26 21:18:39 Java开发

C#:列表℃之间的差异; T&GT;并收集和LT; T&GT; (CA1002,不要暴露泛型列表)

试过跑这里来对项目运行code分析,并得到了一些警告说,像这样的: CA1002:Microsoft.Design:更改;在“名单,LT的 SOMETYPE >''的 SomeClass.SomeProtectedOrPublicProperty 的”使用集合,ReadOnlyCollection还或KeyedCollection 我为什么要使用收藏&LT; T&GT; 而不是列表&L ..
发布时间:2016-08-26 21:05:42 C#/.NET

属性与字段:需要帮助过场抓性质的用途

首先,我已通过关于这一主题的贴子列表看,我不觉得我已经掌握了,因为我已经体会到了关于封装和现场修饰符(私人,public..ect)属性。 一个C#的,我是来学习的主要方面是数据保护您的code内使用封装的重要性。我'想'我明白,是因为使用了修饰符(私有,公共,内部保护)的能力。然而,学习有关属性后,我有点撕裂理解不仅性能使用,但数据保护的总体重要性/能力C#中(我理解为封装)。 要更具体,一 ..
发布时间:2016-08-26 16:05:53 C#/.NET

有什么方法有模块化C code吗?

什么方法,实践和惯例你知道的模块化C code作为一个项目的发展规模? 解决方案 创建其中只包含有什么必要使用一个模块的头文件。在相应的.c文件(S),做任何事情,并不意味着是可见的外部(辅助功能)静态的。使用一切外部可见的名称prefixes有助于避免命名空间冲突。 (如果一个模块跨越多个文件,事情变得更加困难,因为你可能需要公开内部的事情,不能掩盖它们与“静态”) (如果我尝试提高C ..
发布时间:2016-08-21 19:51:35 C/C++

有没有在C制造结构成员莫名其妙地“私有”的任何解决方法吗?

我开发用C一个简单的库,为我自己+朋友的一些个人使用。 我目前具有一些成员认为应该从应用程序的其余部分以某种方式隐藏,因为它们的使用仅限于内部C结构。意外修改此成员之一,将可能使图书馆“归雁”。 有任何“处理方法”隐藏的那些成员,使他们无法访问? 解决方案 通常己技巧是这样的: / * * foo.h中/ typedef结构富富;美孚* foo_create(...);无效foo_ ..
发布时间:2016-08-19 16:01:31 C/C++

我们可以区分不同类的主要序列化方法,使之更容易,更复杂的使用boost库C ++?

如何序列化方法从此code分离,并将其封装到另一个类,这样我们就不必把它写在每一个我们创建的类。 类测试 { 私人的: 友元类的boost ::系列化::访问; 模板&LT;类归档和GT;无效连载(归档和放大器; AR, const的无符号整型版) { AR&安培; BOOST_SERIALIZATION_NVP(一); ..
发布时间:2016-08-12 19:10:36 C/C++开发

MVC 3,部分意见和jQuery重用,没有发生冲突的DOM

因为我还是新的MVC 3和jQuery,我想知道一个最佳实践解决方案,以下是如何可以解决的: 我有一个观点,在这里我使用jQuery AJAX来获取和显示与一些产品的细节产品A的局部视图加载的局部视图包含了一堆的HTML和jQuery code,这是联系在一起的的定义的局部视图中的ID。 因此​​,我想重复使用相同的局部视图显示在同一视图(在弹出的对话框显示例如产品B的详细信息)与其他产品的详 ..
发布时间:2016-07-07 10:57:18 ASP .NET