重读设计模式,从面向对象开始

    xiaoxiao2021-03-25  114

    以前看多一些关于设计模式的介绍,但没有仔细的阅读设计模式,在开发的时候不免磕磕碰碰,再读《大话设计模式从面向对象开始》,深刻理解设计模式。

    什么是对象?

    不用说你应该是个开发人员,所以对于对象这个词应该并不陌生,我们变成大部分都是面向对象(OOP)的。那什么是对象呢?往小的说:一个人,一个物体是对象;往大的说:万物皆对象。只要你想的到的,都可以作为对象。其特点: - 继承 :使不同类具备相同的行为,提高程序扩张性,同时缩小代码量。 - 封装 :封装就是隐藏,避免只用其他的对象直接使用属性从而造成过度依赖。 - 多态 :以不同的方式处理不同类型的对象,提高代码的重用度。

    什么是模式?

    模式这个词定义有点广,看下面的资料: 模式(Pattern)的概念最早由建筑大师Christopher Alexander于二十世纪七十年代提出,应用于建筑领域,八十年代中期由Ward Cunningham和Kent Beck将其思想引入到软件领域,Christopher Alexander将模式分为三个部分:首先是周境(Context,也可以称着上下文),指模式在何种状况下发生作用;其二是动机(System of Forces),意指问题或预期的目标;其三是解决方案(Solution),指平衡各动机或解决所阐述问题的一个构造或配置(Configuration)。他提出,模式是表示周境、动机、解决方案三个方面关系的一个规则,每个模式描述了一个在某种周境下不断重复发生的问题,以及该问题解决方案的核心所在,模式即是一个事物(thing)又是一个过程(process),不仅描述该事物本身,而且提出了通过怎样的过程来产生该事物。这一定义已被软件界广为接受。 我们可以简单的这样定义: 模式是某一上下文环境中一个问题的解决方案。 后来Gof在《Design Patterns: Elements of Reusable Object-Oriented Software》书中为模式从新定义:

    “The design patterns in this book are descriptions of communicating objects and classes that are customized to solve a general design problem in a particular context.”

    意思就是说:这本书说设计模式描述了在一个特定的上下文环境中,如何定制这些互相通信的对象和类来解决一个常见的设计问题。 对于开发者而言,我觉得可以这样说: 模式是在特定的上下文环境中一个问题的”常用”方案。

    设计模式的分类

    创建型模式

    工厂方法模式抽象工厂模式单例模式建造者模式原型模式

    结构型模式

    适配器模式装饰器模式代理模式外观模式桥接模式组合模式享元模式

    行为型模式

    策略模式模板方法模式观察者模式迭代子模式责任链模式命令模式备忘录模式状态模式访问者模式中介者模式解释器模式

    六大原则

    单一职责原则Single Responsibility Principle:实现类要职责单一里氏替换原则Liskov Substitution Principle:不要破坏继承体系依赖倒置原则Dependence Inversion Principle:面向接口编程接口隔离原则Interface Segregation Principle:设计接口的时候要精简单一迪米特法则Demeter Principle:降低耦合开闭原则Open Close Principle :对扩展开放,对修改关闭。 参考文章: http://www.phpfreaks.com/tutorial/design-patterns—introduction http://www.2cto.com/kf/201606/520418.html http://www.cnblogs.com/mfc-itblog/p/5544881.html
    转载请注明原文地址: https://ju.6miu.com/read-16997.html

    最新回复(0)