design-patterns - 什么是反模式?

标签 design-patterns terminology anti-patterns ooad

我正在研究模式和反模式。我对模式有一个清晰的想法,但我没有反模式。网络和维基百科的定义让我很困惑。

有人可以用简单的语言向我解释什么是反模式吗?什么目的?他们在做什么?这是好事还是坏事?

最佳答案

Anti-patterns软件开发中的某些模式被认为是不好的编程实践。

design patterns 相反反模式是解决常见问题的通用方法,这些方法已经形式化,并且通常被认为是良好的开发实践,反模式则相反,是不可取的。

例如,在面向对象编程中,其思想是将软件分成称为对象的小块。面向对象编程中的反模式是 God object它执行很多功能,最好将它们分成不同的对象。

例如:

class GodObject {
    function PerformInitialization() {}
    function ReadFromFile() {}
    function WriteToFile() {}
    function DisplayToScreen() {}
    function PerformCalculation() {}
    function ValidateInput() {}
    // and so on... //
}

上面的示例有一个可以执行所有操作的对象。在面向对象的编程中,最好对不同的对象有明确的职责,以减少代码的耦合并最终提高可维护性:

class FileInputOutput {
    function ReadFromFile() {}
    function WriteToFile() {}
}

class UserInputOutput {
    function DisplayToScreen() {}
    function ValidateInput() {}
}

class Logic {
    function PerformInitialization() {}
    function PerformCalculation() {}
}

最重要的是,有一些很好的方法可以使用常用模式( design patterns )来开发软件,但也有一些软件开发和实现的方法可能会导致问题。被认为是不良软件开发实践的模式是反模式。

关于design-patterns - 什么是反模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/980601/

相关文章:

javascript - JS 代理模式

php - Codeigniter 使用什么设计模式?

android - 在android中使用MVP模式时,android服务调用和对GoogleAPIClient的调用应该写在哪里?

class - 关于类继承的协变与逆变

reactjs - 为什么反模式让 React 组件编辑自己的 props?

c# - 按对象类型解析服务的设计模式?

algorithm - 这个算法流程符号的名称是什么?

windows - API、框架和中间件之间有什么区别?

scala - 将 ActorRef 传递给其他 Actor 是好是坏?

c# - 在这种情况下我如何不使用 DependencyResolver.Current.GetService(...)