Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 面向对象的设计模式查询_Oop_Design Patterns_Ooad - Fatal编程技术网

Oop 面向对象的设计模式查询

Oop 面向对象的设计模式查询,oop,design-patterns,ooad,Oop,Design Patterns,Ooad,我在SO上讨论了不同的问题,并试图找出设计应用程序的最佳方法。我发现在某个地方写了这样一句话:如果类的对象有状态,我们应该将其作为对象 我在同一页上发现应该避免使用实用程序,所以我的问题是如何实现该功能。我们无法创建对象,因为功能可以有状态,也不能有状态。我们也不能使用静态方法。那怎么办 p.S--我的问题可以是门外汉bcoz,我是一个新手,试图学习/实现设计模式,所以如果有人能给我提供阅读材料和示例链接,我们会很高兴的 我在理论上了解一些设计模式。您正在阅读指导原则,并将其视为指令,这使您无法

我在SO上讨论了不同的问题,并试图找出设计应用程序的最佳方法。我发现在某个地方写了这样一句话:如果类的对象有状态,我们应该将其作为对象

我在同一页上发现应该避免使用实用程序,所以我的问题是如何实现该功能。我们无法创建对象,因为功能可以有状态,也不能有状态。我们也不能使用静态方法。那怎么办

p.S--我的问题可以是门外汉bcoz,我是一个新手,试图学习/实现设计模式,所以如果有人能给我提供阅读材料和示例链接,我们会很高兴的


我在理论上了解一些设计模式。

您正在阅读指导原则,并将其视为指令,这使您无法使用过于严格的规则进行编码

指导方针就是指导方针,仅此而已。如果不使用实用程序类是个好主意,那么就不要经常使用它们。在有意义的地方,尽量少用

如果使用一些全局变量是一个坏主意,那么不要经常这样做。但是如果你需要一个静态的助手类,其中有一两个变量可供应用程序使用,那么就这样做吧


不要将指导方针视为法律。把它们当作指导方针,在有意义的时候违背它们。只有通过编程才能获得这些知识。因此,开始这样做,犯错误,从中学习,并不断改进代码。您无法从一开始就完美完成它。

我们如何实现哪些功能?你是在寻找一个无论问题是什么都能工作的设计吗?这是不存在的。当有疑问时,请选择object。在一般实践中,如果您要创建任何静态类,那么静态类中的任何静态函数都不应该使用函数范围之外的任何参数/或成员,这是很好的。在我看来,您的任务是与基础知识作斗争。如果您不能决定某个对象是对象还是应该有实用程序类,那么您还没有准备好使用高级设计方法,因为您将无法理解是否在正确的上下文中使用它们,这是必须的,因为设计模式不是万灵药。我不是说你不应该阅读模式并尝试使用它们,我是说你不应该在现阶段将它们视为一项法律。这种方法的问题是,除非你强迫自己完全在没有网络(静态“东西”)的情况下工作,否则你将无法学会如何在没有它们的情况下正确设计。我不知道有多少人已经学会了如何避免静态,他们甚至急于添加其中的一些。请注意,新手可能无法退出“冷火鸡”,但我认为如此多的开发人员创建“大泥球”的原因是有人告诉他们类似于上述内容,而且他们从来没有走过依靠像拐杖一样的静力学的阶段。