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
Design patterns 尝试OO设计问题陈述时应遵循的步骤_Design Patterns_Oop - Fatal编程技术网

Design patterns 尝试OO设计问题陈述时应遵循的步骤

Design patterns 尝试OO设计问题陈述时应遵循的步骤,design-patterns,oop,Design Patterns,Oop,当处理需要转换为OO设计的问题陈述时,您要遵循哪些步骤。我确实知道,根据问题的不同,方法可能是主观的,并且各有不同,但我确信,每个优秀的设计师在将问题陈述分解为对象和类以及更具体的设计时,必须遵循一些基本的通用步骤。 试着为像我这样的新蜜蜂设计师建立一个程序。OO设计过程中的一个重要步骤是“单一责任原则”。这是一个好的设计的主要基础。设计中的http组件将进行http通信以检索作业,但肯定会避免处理这些作业。作业处理器必须是独立的。这两者(http和作业处理器)都有各自的职责。这是一个更一般的视

当处理需要转换为OO设计的问题陈述时,您要遵循哪些步骤。我确实知道,根据问题的不同,方法可能是主观的,并且各有不同,但我确信,每个优秀的设计师在将问题陈述分解为对象和类以及更具体的设计时,必须遵循一些基本的通用步骤。
试着为像我这样的新蜜蜂设计师建立一个程序。

OO设计过程中的一个重要步骤是“单一责任原则”。这是一个好的设计的主要基础。设计中的http组件将进行http通信以检索作业,但肯定会避免处理这些作业。作业处理器必须是独立的。这两者(http和作业处理器)都有各自的职责。这是一个更一般的视图,在您的组件中,您还可以创建更多遵循此原则的类。

我推荐这本免费的在线书籍。它介绍了一些体系结构概念以及UML。UML是一种绘制设计图的工具,特别是在设计大型设计并进行编码之前,它非常有用。

当我刚开始的时候,我不会对这个答案感到满意,但是。。。它需要大量的研究和实践才能成为第二天性。我能给出的最好的建议是研究你尊敬的人的设计,读一些好书(GOF design patterns是一个很好的起点),并请有经验的人来挑选你的设计


了解诸如单一责任原则之类的东西,但你还需要了解“什么是合适的尺寸”与“过度设计”的区别。这最终取决于需求。

阅读问题时,保留一个名词列表,因为它们可能成为类,动词可能成为方法。 之后,再次检查并验证

您必须阅读有关设计模式的书籍(Head-First设计模式非常好),因为它们会让您真正深入了解如何更好地设计


不要忘了阅读架构模式。

我建议采取以下步骤。 1.编写用例。它将帮助您理解问题,它应该包含基本的执行流程(正确的路径)和备用路径。 2.进行语言分析,找出类别和方法。(这是可选的,如果您知道任何其他好方法,请使用它。) 3.使用SOLID principal设计类。 4.记住封装、继承和多态性。如果你记不起来了,就把它写在纸上或者贴在桌子上。 5.还有一件事你应该记住“是什么封装了它”。 6.在需要时使用设计模式。不要在代码中强制使用设计模式。尝试将您的设计问题映射到任何设计模式


我还建议你读一本“头一个OOAD”的书。这是一本非常好的学习OOAD的书。

从更广阔的角度理解需求对于设计能够长期生存的产品非常重要。理解领域、业务、用户需求、客户期望、识别未知细节在软件设计中也非常重要。影响设计的因素可能有N个,例如使用频率、使用时间、工作流程的复杂性、用户优先级、系统约束、资源、开发人员技能、时间、预算等等。你们应该能够想象出需要解决的问题或需求的大局。
该分析应导致识别系统中哪些是不变的,哪些可能在未来发生变化。设计应抽象出可能发生变化的部分。新需求不应导致重新设计。除法和规则是简化复杂性的公式。设计专用的、特定的软件包或模块。定义它们之间的关系。识别重要的用例,并尝试可视化您的设计将如何处理或满足用例。使用类、类型和接口进行详细设计。根据需要遵循合适的设计模式。不要忘记坚实的原则。可测试性、可扩展性、可维护性和复杂性是一开始就需要考虑的因素。你需要的不仅仅是技能。因此有些人认为它是一门艺术。没有完美的设计。犯错误,从中吸取教训,不要重蹈覆辙。对我来说就是这样。我的回答可能对考虑中的问题不准确,但希望能有所帮助。

首先,这是一个很好的列表。这就是我所寻求的答案。刚开始的时候,我们使用了头先OOAD和头先设计模式,并发现它非常有用。谢谢