
设计模式
文章平均质量分 52
自闭菌
这个作者很懒,什么都没留下…
展开
-
Python下的设计模式学习(5)——代理模式
介绍 代理模式:为其他对象提供一种代理以控制对这个对象的访问 就是为你需要调用的实体的对象,创建一个代理者,这个代理者内部包含实体的引用,以及继承有和实体相同接口的父类。 UML图 代码示例 # @coding: utf-8 # @time : 2021/3/18 13:45 # @Author: zhongbin class Subject: def __init__(self): pass def Request(self): pass class原创 2021-03-18 14:17:41 · 197 阅读 · 0 评论 -
Python下的设计模式学习(1)——简单工厂模式
问题 使用面向对象的思想设计一个简单的计算器类 问题分析 基于面向对象的四个原则即使得代码具有可维护,可复用,可扩展,灵活性好的特点;我们需要通过封装,继承,多态把程序的耦合度降低。将程序的业务逻辑于界面逻辑分开,让它们之间的耦合度下降,才可以达到容易维护和扩展。比如该问题,用户只需要知道使用特定的符号,以及两个数字,代码程序则只获得这三个信息,其他的部分应该具有一致性,内部的具体实现和判断应该由更底层的代码来实现。所以这里我们用到简单工厂模式,定义一个工厂类,对运算符进行判断,再实例化对应不同运算类的的对原创 2021-03-08 10:44:58 · 289 阅读 · 2 评论 -
Python下的设计模式学习(3)——设计原则汇总
单一职责原则 概念:就一个类而言,应该仅有一个引起它发生变化的原因。 理解:软件开发过程中,需要发现软件的职责并将它们分离开来。发现职责并把那些职责相互分离,如果你能够想到多余一个的动机 去改变一个类,那么这个类就具有多一个的职责。 开放封闭原则 概念:软件实体(类,模块,函数等等)应该可以拓展,但是不可以修改;即对于扩展实施开放的,对于更改时实施封闭的。 理解:论模块是多么的“封闭”,都会存在一些无法对之封闭的变换。既然不可能完全封闭,设计人员必须对于他设计的模块应该对哪种变化封闭做出选择,他必须猜测出最原创 2021-03-08 16:07:37 · 140 阅读 · 0 评论 -
Python下的设计模式学习(2)——策略模式
问题 基于商场促销,实现一个简单的商场收银软件,比如商场有原价,打5折,6折,7折;满300减100,满200减50等各种促销方式,使用设计模式以及面向对象的设计模式,设计程序使得程序具有更好的鲁棒性。 问题分析 该问题可以使用Python下的设计模式学习(1)——简单工厂类来实现,即将打折,满减分别作为一个类进行封装,再在工厂类对这些类进行统一判断进行实例化判断。但是这是有弊端的,主要表现在当商场要经常改动对应的满减或者打折的额度时,用户需要在工厂类中进行大量的修改,这显然不符合我们面向对象的设计原则。这原创 2021-03-08 14:50:29 · 243 阅读 · 1 评论