何时检查对象的状态,一般OOP,C#中的示例
发布时间:2020-12-15 05:37:26 所属栏目:百科 来源:网络整理
导读:我不太确定如何在一个句子中说出这个问题,所以我很难找到以前的帖子.这经常出现在我身上,我想就如何处理它达成共识. 假设您有两个类,ExampleClass和ExampleClassManager. ExampleClass有一个Update(数据数据)方法,它从ExampleClassManager中调用.但是,Exampl
我不太确定如何在一个句子中说出这个问题,所以我很难找到以前的帖子.这经常出现在我身上,我想就如何处理它达成共识.
假设您有两个类,ExampleClass和ExampleClassManager. ExampleClass有一个Update(数据数据)方法,它从ExampleClassManager中调用.但是,ExampleClass可以处于两种状态之一,并且处于Enabled状态,它希望处理在Update中传递给它的数据,而在处于禁用状态时,它根本不对数据执行任何操作. 我是否应该检查ExampleClassManager中的状态,如果它被禁用则根本不传递数据,或者我应该传递数据而不是在ExampleClass中忽略它? 这是一个代码示例,以防我没有明确表达清楚. public class ExampleClass { public bool Enabled { get; set; } public void Update(Data data) { if(Enabled) { //do stuff with data } } } public class ExampleClassManager { private List<ExampleClass> exampleClassList=new List<ExampleClass>(); public void UpdateList() { foreach(ExampleClass exampleClass in exampleClassList) { exampleClass.Update(data); } } } 要么 public class ExampleClass { public bool Enabled { get; set; } public void Update(Data data) { //do stuff with data } } public class ExampleClassManager { private List<ExampleClass> exampleClassList=new List<ExampleClass>(); public void UpdateList() { foreach(ExampleClass exampleClass in exampleClassList) { if(exampleClass.Enabled) { exampleClass.Update(data); } } } } 解决方法
鉴于它取决于ExampleClass的属性,我选择选项1并在ExampleClass.Update中检查.否则,任何有权访问ExampleClass对象的对象都可以调用Update,而不管状态如何.通过在Update方法中进行检查,确保只有在启用对象时才会继续.这里的问题是谁可以改变对象的状态?
见Law of Demeter:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 提高oracle查询速度
- c# – Invalidate()和Refresh()都调用OnPaint()
- 【android动态布局】之【ListView动态加载数据模板(使用xm
- ajax请求接收后台json数据格式
- 利用Pull解析xml时,总抛出这个异常:Error parsing document
- 使用XMLHttpRequest执行Ajax请求
- 基本数据类型——swift学习笔记(2)
- CentOS6.2上安装Oracle10g报ins_emdb.mk错误处理方法
- 字符串出现在另一个字符串(文本框)VB.NET中的次数
- SQLLite (三):sqlite3_prepare_v2,sqlite3_step