自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 python-单例模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns说明:单例模式是所有设计模式中比较简单的一类,其定义如下:Ensure a class has only one instance, and provide a global point of access to it.(保证某一个类只有一个实例,而且在全局只有一个访问点)单例...

2020-01-19 21:41:31 138

原创 python-原型模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns说明原型模式关注的是大量相同对象或相似对象的创建问题,意图在于通过复制一个已经存在的实例来获得一个新的实例,以避免重复创建此类实例带来的开销。被复制的实例就是这个“原型”,这个原型是可定制的。实例:在Photoshop等平面设计的软件中,图层概念的提出,使得设计、...

2020-01-19 21:40:59 229

原创 二十三种设计模式-六大原则

二十三种设计模式一、创建型:单例模式、工厂模式、抽象工厂模式、原型模式、建造者模式;二、结构型:代理模式,装饰器模式、适配器模式、外观模式、组合模式、享元模式、桥梁模式;三、行为型:策略模式、责任链模式、命令模式、中介者模式、模板方法模式、迭代器模式、访问者模式、观察者模式、解释器模式、备忘录模式、状态模式。三类设计模式的特点:...

2020-01-19 21:40:33 180

原创 python-建造者模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns说明:假如要组装一台电脑,将主板,CPU,内存等部件按照某个稳定的步骤组合,基本过程是不变的,而组成电脑的各个部件却可以是不同性能的,不同价位,或者是不同版本的,当组成电脑的时只需要选择不同的组件就可以按照基本相同的过程造出不同配置的电脑。也就是说建造者模式的意图是将一个复杂对象的...

2020-01-19 21:40:26 467

原创 简单工厂模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns考虑动机:考虑一个简单的软件应用场景,一个软件系统可以提供多个外观不同的按钮(如圆形按钮、矩形按钮、菱形按钮等),这些按钮都源自同一个基类,不过在继承基类后不同的子类修改了部分属性从而使得它们可以呈现不同的外观,如果我们希望在使用这些按钮时,不需要知道这些具体按钮类的名字,只需要知...

2020-01-13 19:48:31 136

原创 python-工厂方法模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns简单工厂模式的不足:在简单工厂模式中,只提供了一个工厂类,该工厂类处于对产品类进行实例化的中心位置,它知道每一个产品对象的创建细节,并决定何时实例化哪一个产品类。简单工厂模式最大的缺点是当有新产品要加入到系统中时,必须修改工厂类,加入必要的处理逻辑,这违背了“开闭原则”。在简单工厂...

2020-01-13 19:47:54 134

原创 python-外观模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns说明:外观模式又叫做门面模式。在面向对象程序设计中,解耦是一种推崇的理念。但事实上由于某些系统中过于复杂,从而增加了客户端与子系统之间的耦合度。例如:在家观看多媒体影院时,更希望按下一个按钮就能实现影碟机,电视,音响的协同工作,而不是说每个机器都要操作一遍。这种情况下可以采用外观模...

2020-01-13 19:47:22 99

原创 python-桥接模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns说明:有些类在功能设计上要求,自身包含两个或两个以上变化的因素,即该类在二维或者多维上变化。现有一杯咖啡,咖啡杯的大小和是否加奶为两个变化因素,使得这杯咖啡在这两个维度上发生变化,也就是可以产生四个类:小杯不加奶,小杯加奶,大杯不加奶,大杯加奶。这样的话如果说在给咖啡多几个变化因素...

2020-01-13 19:46:51 273

原创 python-适配器模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns说明:为了解决接口不兼容的问题引进一种接口的兼容机制,就是适配器模式,其通过提供一种适配器类将第三方提供的接口转换为客户希望的接口。生活中的例子例如:手机充电器要将220v的电源转换为手机适合的电压才能充电。这个充电器就起到了适配的作用。适配器模式:将一个类的接口转换成客户希望...

2020-01-13 19:46:21 166

原创 python-装饰器模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns说明:有时为了给某个对象而不是给整个类添加一个功能,使用继承机制是添加功能的一个有效途径,但是不够灵活,用户不能控制对组件加边框的方式和时机,并且会导致子类膨胀。一种较为灵活的方式就是将组件嵌入另一个对象中,这个嵌入的对象叫做装饰。装饰模式:动态地给一个对象增加一些额外的职责。...

2020-01-13 19:45:41 105

原创 python-代理模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns说明:模式动机 通过引入一个新的对象(如小图片和远程代理对象)来实现对真实对象的操作或者将新的对象作为真实对象的一个替身,这种实现机制即为代理模式,通过引入代理对象来间接访问一个对象,这就是代理模式的模式动机。常见的有:分析 代购商品:顾客 ->代购网站 ->商品...

2020-01-13 19:45:08 135

原创 python-享元模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns说明:如果一个软件系统在运行时所创建的相同或相似对象数量太多,将导致运行代价过高,带来系统资源浪费、性能下降等问题 如何避免系统中出现大量相同或相似的对象,同时又不影响客户端程序通过面向对象的方式对这些对象进行操作呢。例如在文字编辑软件中,把每个字符当成对象处理,并分配相应的系统空...

2020-01-13 19:44:31 141

原创 python-组合模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns说明:组合模式主要用来处理一类具有“容器特征”的对象——它们即充当对象又可以作为容器包含其他多个对象。组合模式对“容器特征”的对象和单个对象一视同仁。例如在计算机处理算术表达式的时候,算术表达式包括操作数,操作符和另一个操作数。操作数可以是一个数字也可以是另一个表达式。这样7+8和...

2020-01-13 19:43:50 272

原创 python-策略模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns说明:策略指的就是为了达到某一目的而采取的手段或者方法。为了实现软件设计咪表,对象可能会用到多种多样的算法。这些算法甚至会经常改变。如果将这些算法都硬编码到对象中,将会使得对象本身变得臃肿不堪,而且有时候支持不同的算法也是一个性能负担。策略模式很好的实现了在运行时根据需要透明的更改...

2020-01-13 19:43:15 139

原创 python-迭代器模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns说明:集合是用来管理和组织数据对象的数据结构的。集合有两项基本职能:一、批量的存储数据对象,二、在不暴露集合内部结构的条件下向外界提供访问内部元素的接口(可能存在的遍历方式:顺序、逆序遍历,二叉树的广度优先,先序后序中序遍历等)。要使得集合保持整洁和优雅,而不是说令集合内部包含着各...

2020-01-10 13:25:53 115

原创 python-观察者模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns说明:存在这样的一种情况:公司领导再开例会那天临时有事,他让秘书给所有会上员工群发了一封邮件,通知大家会议取消,员工们收到邮件之后得知会议取消便继续回到各自岗位开始工作。这其中就包含了一种隐含地思想就是:领导与员工们之间的“一对多的通知依赖关系”。即一个对象的状态或行为的变化将导致...

2020-01-10 13:25:28 123

原创 python-解释器模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns说明:解释器模式在面向对象语言实现的编译器中得到了广泛的应用。但是此模式进适用于建大的文法解释,弊端又多,所以很少有其他方面使用。例如:将“1+2+3-4”等字符串输入到python的console,但是本身python不认识这些字符串,就需要定义的一套文法规则来解释这些字符串,也...

2020-01-10 13:24:57 122

原创 python-模板方法模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns说明:模板方法模式时行为模式中比较简单的设计模式之一。模板方法关注这样的一类行为:该类行为在执行过程中拥有大致相同的动作次序,只是动作在实现的具体细节上有所差异。例如:泡茶和泡咖啡,泡茶:把水煮沸,沸水加入茶叶,把倒进杯子。泡咖啡:把水煮沸,用沸水冲咖啡粉,把咖啡倒进杯子。这样看来...

2020-01-10 13:24:10 156

原创 python-状态模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns说明:在软件开发过程中,各种应用程序可能会根据不同的情况做出不同的处理。最直接的方案就是把所有的可能发生的情况都考虑到。然后使用条件语句对不同情况的作出判断并进行处理。但是假如状态比较复杂,就会出现多个判断语句,判断语句中又包含这各种操作,这显然是不受欢迎的。状态模式的出现就...

2020-01-10 13:23:36 200

原创 python-中介者模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns说明:面向对象设计中鼓励将行为分不到各个对象中,这种分布可能会导致对象间有许多连接。最坏的情况下,每一个对象都知道其他所有对象,这就非常不符合设计模式原则了。因为单一指责原则要求我们应该尽量将对象细化,使其只负责单一的职责。并且当大量对象相互连接交织在一起的时候,对系统行为的改动将...

2020-01-10 13:23:04 148

原创 python-备忘录模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns说明:一个成熟的软件应当允许用户取消不确定的操作或者从错误的状态中恢复过来。复制,粘体,撤回,和剪切是常见的应用。因此程序必须提供必要的检查点和取消机制。在适当的事迹程序需要检查对象的状态,如有必要将状态信息保存到某处,以使得对象有机会恢复到它们之前的状态。但是面向对象的封装性又使...

2020-01-10 13:22:29 218

原创 python-责任链模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns说明:当你作为一名coder已经快三十却还还没有女朋友,家中父母已经着急万分,此时要求你回家相亲,你嘴上说不要,我还年轻,还要为事业打拼,但是摸着头顶上日渐稀少的毛发,身体也很诚实,早早的写好了假条。此时要找领导请假,但是又不知道找哪个靠谱的领导。简言之,提交请求的对象并不明...

2020-01-10 13:21:48 134

原创 python-访问者模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns说明:访问者模式的基本想法是,软件系统中拥有一个由许多对象构成的、比较稳定的对象结构,这些对象的类都拥有一个 accept 方法用来接受访问者对象的访问。访问者是一个接口,它拥有一个 visit 方法,这个方法对访问到的对象结构中不同类型的元素做出不同的处理。在对象结构的一次...

2020-01-10 13:20:18 188

原创 python-命令模式

源码地址:https://github.com/weilanhanf/PythonDesignPatterns说明:命令在发送方被激活,而在接收方被响应。一个对象既可以作为命令的发送方,也可以作为命令的接收方,或者都可以。命令的典型应用就是图形用户界面开发。每一个窗体都包含菜单,工具栏,按钮等控件,将用户的单机动作也叫命令作为外部事件,然后系统会根据绑定的事件处理程序执行相应的动作即命令获...

2020-01-10 13:19:24 126

原创 二十三种设计模式-六大原则

二十三种设计模式一、创建型:单例模式、工厂模式、抽象工厂模式、原型模式、建造者模式; 二、结构型:代理模式,装饰器模式、适配器模式、外观模式、组合模式、享元模式、桥梁模式;  三、行为型:策略模式、责任链模式、命令模式、中介者模式、模板方法模式、迭代器模式、访问者模式、观察者模式、解释器模式、备忘录模式、状态模式。  三类设...

2020-01-05 19:50:42 215

原创 天天生鲜项目实战-思路 数据库设计

github源码地址静态文件地址在线地址:http://39.108.176.210  网站首页  登录页面 商品详情页  购物车页 一、需求分析:类似于京东的生鲜超市,对于用户而言能够实现登陆,注册,商品浏览,购买等,对于商家而言,实现商品的管理,即添加,修改,删除等。平台:管理员、...

2019-05-03 21:12:49 5977 4

原创 Bootstrap 实战之响应式个人博客 (二)

阅读本博文前请参考:Bootstrap 实战之响应式个人博客 (一)一、博客1、结构整体博客详情页的结构共包括四部分:导航栏博客主体内容右侧栏:全局搜索框,广告位,推荐阅读页尾其中导航栏,右侧栏,页尾都是可以复用博客列表页(index.html)的元素以及样式表的,需要补充的只有博客主体内容了,所有工作量大大减少了。2、简介博客主页应该有一个对博客主体内容的简介,还有直...

2019-05-03 20:47:50 528

原创 Bootstrap 实战之响应式个人博客 (一)

一、示例1、主页2、博客详情页3、在线地址在线地址:入口Addition:这里使用github-page将自己的静态项目免费部署到线上。如果你只是做一些简单的静态项目做展示,付出这么大的时间和经济成本去专门购买一台云服务器显然是得不偿失的。github提供了github-page让用户可以免费部署自己的静态站点。更多参考:github-page在本项目的静态站点部署时与其他的代码...

2019-05-03 20:45:07 6673 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除