首页 / C# / c# – 如何最好地设计可扩展的类?
c# – 如何最好地设计可扩展的类?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 如何最好地设计可扩展的类?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1461字,纯文字阅读大概需要3分钟。
内容图文
我的意思是:
我现在基本上有一个具有太多属性和功能的类.为了保持高效和易懂,它需要以某种方式缩小.但我仍然需要所有这些属性和方法.
就像现在这样:
class Apple
float seedCount;
...
...about 25 variables and properties here.
void Update() <-- a huge method that checks for each property and updates if so
在大多数情况下,该类几乎不需要这些属性.在某些情况下,需要能够非常有选择地增长并获得功能或丢失功能.
我提出的唯一解决方案是,我创建了一堆类并在其中放置了一些属性.我只在需要其中一个属性时初始化这个类对象,否则它保持为null.
class Apple
Seed seed;
因此存在许多问题:
我经常需要检查每个对象并确定每个帧的特征.如果种子没有初始化,我不必为它计算任何东西.如果是的话,我必须这样做.
如果我决定将多个属性/特性放入Seed类中,我还需要检查每一个属性/特征.
它变得越来越复杂.因此,我遇到的问题是,我需要对所有功能进行精细控制,并且不能将它们智能地拆分为更大的子类.任何形式的子类都只包含一堆需要检查和更新的属性.
我不能完全创建Apple的子类,因为需要这种高粒度控制.创建与属性组合一样多的类将是疯狂的.
我的主要目标:我想要短代码.
最佳答案:
It would be madness to create as many classes as there are combinations of properties.
听起来你可能正在寻找Decorator Pattern.它的目的是让管理具有许多不同属性组合的对象更容易,而不会出现指数增长的层次结构.每个属性或行为只有一个小子类(不一定是一个C#属性,只是可以组合在一起的东西),然后您可以在运行时将它们组合在一起.
在您的情况下,每个Apple装饰器类将覆盖您的Update方法,并对其部件进行必要的计算,然后调用base.Update将其传递给下一个.
你的最终答案很大程度上取决于你的“苹果”到底是什么.
内容总结
以上是互联网集市为您收集整理的c# – 如何最好地设计可扩展的类?全部内容,希望文章能够帮你解决c# – 如何最好地设计可扩展的类?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。