Git Product home page Git Product logo

design-patterns's Introduction

设计模式

创建型

结构型

行为型

设计模式六大原则

  • 开闭原则

    开闭原则是指软件实应该可以扩展,而不可以修改。即对扩展开发对修改封闭。开闭原则是面向对象设计的核心所在。遵循这个原则可以带来面向对象技术所声称的巨大好处,也就是可扩展、可维护、可复用、灵活性好。开发人员应该对程序中频繁变化的那部分做 出抽象,然而,对于应用程序中的每部分都刻意地进行抽象同样不是一个好主意。拒绝不成熟的抽象和抽象一样重要。

  • 依赖倒置原则

    1. 高层模块不应该依赖底层模块。两个都应该依赖抽象。
    2. 抽象不应该依赖细节,细节应该依赖抽象
  • 里氏替换原则

    一个软件实体如果使用的是一个父类的话,那么一定使用起子类,而且它察觉不出父类对象和子类对象的差别。也就是说在软件里面把父类都替换成子类,软件行为没有变化。

    即子类型必须能够替换掉他们的父类型

  • 迪米特法则

    也叫做最小知识原则。如果两个类彼此不进行通信,那么这两个类就不应该发生直接的相互作用,如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。

    在类的设计实践中要尽量的降低成员的访问权限。

  • 单一职责

    单一职责是指就一个类而言,应该仅有一个引起它变化的原因。 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一 个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。 这种耦合会导致脆弱的设计,当发生变化时,设计会遭受意想不 到的破坏。

  • 接口隔离

design-patterns's People

Contributors

haveryyao avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.