当前位置: 首页 > 后端技术 > Python

Python七大原则,24种设计模式

时间:2023-03-26 17:19:27 Python

七大设计原则:1.单一职责原则[SINGLERESPONSIBILITYPRINCIPLE]:一个类负责一个职责。2.里氏替换原则【LISKOVSUBSTITUTIONPRINCIPLE】:继承和派生3.依赖倒置原则【DEPENDENCEINVERSIONPRINCIPLE】:高层模块不应该依赖低层模块,两者都应该依赖于它们的抽象;抽象不应依赖于细节;细节应该取决于抽象。也就是说,针对接口而不是实现进行编程。4、接口隔离原则【INTERFACESEGREGATIONPRINCIPLE】:建立单一接口,不要创建庞大臃肿的接口,尽量细化接口,接口中的方法尽量少。5.迪米特定律[LOWOFDEMETER]:高内聚低耦合-高内聚低耦合6.开闭原则[OPENCLOSEPRINCIPLE]:类、模块、函数等软件实体应该对扩展开放和关闭进行修改。7.Composition/AggregationReusePrinciple[Composition/AggregationReusePrinciple(CARP)]:尽量使用组合和聚合,少用继承来达到复用的原则。24种设计模式:1.创建型模式1.抽象工厂模式(Abstractfactorypattern):提供一个接口,用于创建一族相关或依赖的对象,而无需指定具体的类。2.建造者模式(Builderpattern):利用建造者模式封装一个产品的建造过程,允许分步建造。将复杂对象的构造与其表示分离,使得相同的构造过程可以创建不同的表示。3.工厂模式(factorymethodpattern):定义了一个创建对象的接口,但是由子类决定实例化哪个类。工厂方法允许类将实例化推迟到子类。4.原型模式(prototypepattern):当创建给定类的实例过程昂贵或复杂时,使用原型模式。5、单例模式:保证一个类只有一个实例,并提供一个全局访问点。6.多实例模式(Multipattern):在一个解决方案中结合两个或多个模式来解决一般性或重复出现的问题。二、结构模式1.适配器模式(Adapterpattern):将一个类的接口转换成客户期望的另一个接口。适配器允许具有不兼容接口的类无缝协作。对象适配器使用组合,类适配器使用多重继承。使它们独立可变。3.组合模式:允许您将对象组合成树结构以表示“整体/部分”层次结构。组合允许客户以一致的方式处理单个对象和对象组合。4、装饰器模式(decoratorpattern):动态地将职责附加到对象上,为扩展功能,装饰器提供了比继承更灵活的选择。5、外观模式(facadepattern):提供统一的接口,用于访问子系统中的一组接口。外观定义了一个高级接口,使子系统更易于使用。6.FlyweightPattern:如果要使用某个类的实例来提供很多“Virtualinstance”,使用flyweight模式。7.代理模式(Proxypattern):为另一个对象提供一个替代物或占位符来控制对这个对象的访问。三、行为模式1、责任链模式(Chainofresponsibilitypattern):通过责任链模式,可以为一个请求创建一个对象链。每个对象依次检查请求并对其进行处理或将其传递给链中的下一个对象。2、命令模式(Commandpattern):将“请求”封装到一个对象中,这样就可以使用不同的请求、队列或日志来参数化其他对象。命令模式还支持可撤销的操作。3.解释器模式(Interpreterpattern):使用解释器模式为语言创建一个解释器。4.迭代器模式:提供一种在不暴露其内部表示的情况下顺序访问聚合对象中的元素的方法。5.中介者模式:利用中介者模式将相关对象之间复杂的通信和控制方法集中起来。6.备忘录模式(Mementopattern):当你需要让对象回到之前的状态时(比如你的用户请求“撤销”),你就使用备忘录模式。7、观察者模式:定义对象之间一对多的依赖关系,这样当一个对象改变状态时,所有依赖它的对象都会得到通知并自动更新。8.状态模式(Statepattern):允许对象在内部状态改变时改变它的行为,对象看起来就像改变了它的类一样。9.策略模式(strategypattern):定义了算法族,它们是单独封闭的,这样它们就可以相互替换,这种模式使得算法的改变与使用算法的客户端无关。10、模板方法模式(Templatepattern):在一个方法中定义一个算法的骨架,将一些步骤延迟到子类中。模板方法允许子类在不改变算法结构的情况下重新定义算法中的某些步骤。11.访问者模式(visitorpattern):当你想为一个对象的组合添加新的能力,而封装又不重要时,使用访问者模式。以上就是本次分享的全部内容。现在想要学习编程的朋友们欢迎关注Python技术大本营获取更多技能教程