Python 类的设计原则

#   面向对象遵循的原则: SOLID
#                         S(Single Responsibility Principle)
#                             单一职责原则
#                                 一个类只负责一项职责
#                             好处
#                                 易于维护, 写出高内聚的代码
#                                 易于代码复用
#                             案例
#                                 我们之前写的计算器类
#                                     假设只包含加减乘除运算和结果打印
#                                     如果往后需要增加, 结果写入文件, 结果参与其他运算, 结果上传服务器...
#                                     是不是每一次都需要去修改此类? 就导致这个类变得特别臃肿; 不利于维护和部分代码复用
#                                 解决方案
#                                     计算器只包含, 加减乘除运算以及结果返回
#                                     根据不同情况, 将对结果的处理分散到其它合适的类别中

                            # O(Open Closed Principle)
                            #     开放封闭原则
                            #         对扩展开放
                            #         对修改关闭
                            #     易于维护, 保证代码安全性以及扩展性
                            #     案例
                            #         我们之前写的, 在Person类中, 写的, 让小狗小猫工作的方法
                            #             假设小狗小猫的工作方法名分别是watch和catch;
                            #                 那Person类中让宠物工作的方法就需要通过if进行多分支判定
                            #             如果以后, 扩展了新的宠物类; 那么, Person类中的让宠物工作的方法, 必须要跟着修改
                            #         解决方案
                            #             通过基类, 以及抽象类等方案进行方法的统一

                            # O(Open Closed Principle)
                            #     开放封闭原则
                            #         对扩展开放
                            #         对修改关闭
                            #     易于维护, 保证代码安全性以及扩展性
                            #     案例
                            #         我们之前写的, 在Person类中, 写的, 让小狗小猫工作的方法
                            #             假设小狗小猫的工作方法名分别是watch和catch;
                            #                 那Person类中让宠物工作的方法就需要通过if进行多分支判定
                            #             如果以后, 扩展了新的宠物类; 那么, Person类中的让宠物工作的方法, 必须要跟着修改
                            #         解决方案
                            #             通过基类, 以及抽象类等方案进行方法的统一

                        # L(Liskov Substitution Principle)  L(Liskov Substitution Principle)

                            # I(Interface Segregation Principle)
                            #     接口分离原则
                            #         如果一个类包含了过多的接口方法,而这些方法在使用的过程中并非"不可分割", 那么应当把他们进行分离
                            #         所谓接口, 在Python中, 可以简单的理解为"抽象方法"
                            #     好处
                            #         提高接口的重用价值
                            #     案例
                            #         小鸟
                            #             吃, 叫, 飞
                            #         上述接口设计在有鸵鸟类的前提下, 设计就不合理

                            # D(Dependency Inversion Principle)
                            #     依赖倒置原则
                            #         高层模块不应该直接依赖低层模块
                            #         他们应该依赖抽象类或者接口
                            #     好处
                            #         利于代码维护
                            #     案例
                            #         电脑类, 依赖的不是某一个具体鼠标类
                            #         而应该是, 鼠标类的抽象
                            #             能单击, 能双击, 能右击, 能移动鼠标指针...
                            #             到时, 可以是触摸板, 也可以是有线鼠标, 也可以是蓝牙鼠标...

原文地址:https://www.cnblogs.com/delphiclub/p/8626756.html

时间: 2024-10-06 00:50:42

Python 类的设计原则的相关文章

项目设计之---------- 类的设计原则

类的设计最好遵循5大原则,1.单一指责原则,2.开放封闭原则,3.liskov替换原则,4.依赖倒置原则(抽象不应依赖于具体,相反,具体应该依赖于抽象),5.接口隔离原则(就是接口细分,一个接口内的方法应该是用户都需要的).具体参考<敏捷软件开发>第2部分(第98页) 类的设计估计要用到许多模式,注意参考各种设计模式,具体参考<设计模式>.<大话设计模式>.<敏捷软件开发>等都有说到 项目设计之---------- 类的设计原则

类的设计原则

刚接触设计模式的时候我就被它的优雅给吸引了,发现原来代码还可以这样写,当时的我入了迷. 记得看的第一本设计模式的书籍叫<大话设计模式>,当时的我还不能完全理解里面的思想,但并不妨碍我被它的优雅给吸引,这本书我看了3遍,直到现在感觉还是有点乱,在这整理一下自己的思路,加深一下自己的理解. 类的设计原则: 开闭原则:在面对对象设计的中,应该遵循对扩展开放,对修改关闭. 开闭原则实现方法: 为了满足开闭原则,我们这软件设计中应该将不变的部分抽象出来,定义成不变的接口(或抽象类),模块之间调用通过抽象

Python——类的设计

类的设计 这里讨论Python的OOP的设计问题,也就是如何使用类来对有用的对象进行建模.将编写Python中常用的OOP设计模式,例如,继承.组合.委托和工厂.另外介绍一些类设计的概念,例如伪私有属性.多继承等. ================================================================================ Python和OOP Python的OOP实现与Java类似,可以概括为三个概念: 1.[继承]继承是基于Python中的

13.10类的设计原则

内聚性 类应该描述一个单一的实体,而所有的类操作应该在逻辑上相互配合,支持一个一致的目的. 一致性 遵循标准Java程序设计风格和命名习惯. 封装性 一个类应该使用private修饰符隐藏其数据,以免用户直接访问. 清晰性 为使设计清晰,内聚性.一致性和封装性都是很好的设计原则. 完整性 实例和静态 依赖与类的具体实例的变量或方法必须是一个实例白能量或方法.如果一个变量被类的所有实例所共享,那就应该将他声明为静态的. 继承与聚合 集成和聚合之间的差异,就是is-a(是一种)和has-a(具有)之

java类的设计原则

1.内聚性 类应该描述一个单一的实体,所有的类操作应该在逻辑上相互配合,支持一个连贯性的目标.例如:学生和教职工属于不同的实体,应该定义两个类. 2.一致性 要遵循一定的设计风格和命名习惯.给类.方法.数据域选择有信息量的名字.流行的风格是将数据声明置于构造方法之前,并将构造方法置于方法之前. 选择的名字要保持一致,给类似的操作选择不同的名字并非好的习惯. 如果不想让用户创建类的对象,可以在类中声明一个私有的构造方法. 3.封装性 用private修饰符隐藏其数据域,以免用户直接访问.如果想让数

《转》面向对象类设计原则

面向对象类的设计原则 1                 SRP(单一职责原则) 这个原则看起来很简单,就是说一个类只能承担一个职责. 但这里有一个关键:"职责"是如何理解的? 按照汉语的理解,职责其实分为两部分:"职"和"责"."职"就是这个类是什么,而"责"就是这个类要干什么. 举个例子来说:Door是一个对象,那么它的"职"就是门,"责"就是"开门.关

*javascript开发的设计原则和设计模式

 设计原则(7种):   之所以有这么多的原则来指导我们进行程序的设计和开发,是因为我们的程序存在未知的改变.为了以最低的代价拥抱这种未知的变化,前辈们给我们总结了这么多原则. ①YAGNI原则you aren't gonna need it 不要写不需要的代码 ②KISS原则keep it simple and stupid代码保持简介和具有表现力语义话的标记.注释.变量或者方法的命名.减少嵌套 ③DRY原则Don't Repeat Yourself模块的封装提高代码的复用率 降低测试难度 方

java设计原则:16种原则

一   类的设计原则   1 依赖倒置原则-Dependency Inversion Principle (DIP) 2 里氏替换原则-Liskov Substitution Principle (LSP) 3 接口分隔原则-Interface Segregation Principle (ISP) 4 单一职责原则-Single Responsibility Principle (SRP) 5 开闭原则-The Open-Closed Principle (OCP) 二  包的设计原则   6

Java六大设计原则

类的设计原则 依赖倒置原则-Dependency Inversion Principle (DIP) 里氏替换原则-Liskov Substitution Principle (LSP) 接口分隔原则-Interface Segregation Principle (ISP) 单一职责原则-Single Responsibility Principle (SRP) 开闭原则-The Open-Closed Principle (OCP) 一. Dependency Inversion Princ