python设计模式之设计模式简介



一、理解面向对象编程


1.对象

        1.1 表示程序内的实体。

        1.2 实体能够交互来解决问题。

         1.3 类实例化后即成为对象。(例子中的p)

2.类

        2.1定义对象的属性和行为。属性就是数据成员(例子中的name和age),行为就是函数(例子中的get_person)。

        2.2类中含有构造函数,用于给对象初始化。(例子中的_init_)。

        2.3类能够重复使用。

3.方法

        3.1方法是表示对象的行为(例子中的get_person)。

        3.2.方法能够对属性进行处理(例子中get_person 打印了属性)。


二、面向对象编程的主要概念

     1.封装

                  1.1将行为封装到类中,对外不可见。

                   1.2客户端不能通过直接操作来改变对象的内部状态。

                   1.3python中,对类属性和方法的的封装不是隐式的,无public,private等关键字

      2.多态

                  2.1对象根据输入的参数提供方法的不同实现。不同类型的对象可以使用相同的接口。

                  2.2多态是python语言内置的功能。例如'+'操作符。既可以加两个整数,也可以加两个字符串。

      3.继承


                   3.1子类可以继承父类(大部分)功能。(例子中B 继承了A)

                   3.2子类可以扩展基类的功能。

                   3.3python支持多重继承。可以利用不同类的对象之间的关系建立层次结构。

       4.抽象


                  4.1提供简单的客户端接口,客户端可通过该接口与类的对象进行交互。

                  4.2内部类的复杂性抽象成接口,客户端无须关心内部实现。(例子中将加法运算进行抽象)


       5.组合

                   5.1将对象或类组合成更复杂的数据结构或软件实现。

                   5.2使用组合,能够让一个对象调用其他模块的函数。从而减少继承的使用。


三、面向对象的设计原则

       1.开放封闭原则

                     类或对象及其方法对于扩展开发,对于修改封闭。

        2.控制反转原则

                      高层级模块不应该依赖于低层级模块。中间应该提供抽象层耦合。

        3.接口隔离原则

                       客户端不应该依赖于他们不需要使用的接口

        4.单一职业原则

                       类的职责单一,引起类变化的原因单一。

        5.替换原则

                     派生类必须能够完全取代基类。


四、设计模式的概念

        1.设计模式的优点

                     1.1复用性高。

                     1.2问题可以在架构级别解决。

                     1.3前人的经验总结。

                     1.4具有可靠性和依赖性。

        2.设计模式的分类

                      2.1代码段:用某种语言棉鞋的一段具有特定用途的代码。

                      2.2设计:用来解决某个特定问题的优秀解决方案。

                      2.3标准:解决某类问题的方法,通用性高,适用于当前情况。

                      2.4模式: 经过时间考验的、高效、可扩展的解决方案,能够解决一类已知问题。

        3.上下文---设计模式的适用性

                      3.1参与者:设计模式中用到的类。

                      3.2非功能需求:内存优化,可用性,性能等需求。

                      3.3权衡:非所有的设计模式都适用于应用程序开发,需要做权衡。

                      3.4结果:如果实用性不好,可能会对代码带来负面影响。


五、动态语言的设计模式(python)

        1.类型和类是运行时对象

        2.变量可以根据赋值确定类型

        3.动态语言在类限制方面具有灵活性。

        4.多态是固有属性。


六、模式的分类

        1.创建型模式

                       1.运行机制是基于对象的创建。

                       2.他们将对象创建的细节格力。

                       3.代码与所创建的对象的类型无关。

         2.结构型模式

                       1.通过组合获得更强大的功能的对象和类的结构。

                       2.重点是简化结构并识别类和对象之间的关系

                       3.他们关注类的集成和组合。

         3.行为型模式

                       1.他们关注对象之间的交互以及对象的响应性。

                       2.对象应该能够交互,同时仍然保持松散耦合。


本系列项目代码地址:Python-design-pattern

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若云流风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值