c# – 这个组合是否违反了面向对象编程的任何原则?
发布时间:2020-12-15 23:23:25 所属栏目:百科 来源:网络整理
导读:说我有以下两个类: public class MyDevice{ int id; string name; // other resources public MyChannel CreateChannel() { return new MyChannel(this); }} public class MyChannel{ int id; MyDevice _device; // other resources public MyChannel(MyDev
说我有以下两个类:
public class MyDevice { int id; string name; // other resources public MyChannel CreateChannel() { return new MyChannel(this); } } public class MyChannel { int id; MyDevice _device; // other resources public MyChannel(MyDevice device) { _device = device; } } 实际上,每个设备可以具有可变数量的通道.所以关系是每个设备都有一个频道集合.编写MyChannel对象的代码的方式让我感到困扰的是MyDevice对象.但是,代码中定义的关系更方便,我也希望保持简单. 为了平息我脑后的唠叨 – 我一直指着SqlConnection和SqlCommand的结构,每个SqlCommand对象都有一个SqlConnection对象,尽管事实上每个SQL连接都有一系列SQL命令. 我是否违反了面向对象编程的任何原则/这个代码闻到了什么? 编辑: 明确地说:在面向对象设计方面,转变它的关系是一个很大的禁忌吗?如果是这样,忽略/忽略的单一原则是什么? 解决方法
我假设示例说Device是它的意思是MyDevice.您基本上可以引用父级即设备.我认为这不会破坏OO并且在许多情况下是有用的.纯粹主义者会说它打破了父母的封装,并创建了从通道到通道外的任何东西的耦合.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |