1装饰器的初识 概念:不改变函数原来的调用方式,动态地给函数添加功能 开放封闭的原则:1>对添加的新功能是开放的,32>不要在元代码进行修改(封闭) 1.1>函数的定义:对代码块和功能的定义和封装 def func(): print("哈哈哈") func() 1.2>函数可以当做变量一样来赋值 1.3>函数可以向普通变量一样放到容器(列表,字典,元组)中 def func(): print("鞠婧祎是我前女友") def foo():…
关于Bootstrap,相信大家一定不陌生,它已经成为现在主流产业的一个重要工具,Bootstrap提供了优雅的HTML和CSS规范,它基于jQuery框架开发的,它在jQuery框架的基础上进行了更为个性化和人性化的完善,形成一套自己独有的网站风格,并兼容大部分jQuery插件.今天,我们带来6款Bootstrap实现的几款小应用,希望可以对你们有所帮助! 移动为先的Bootstrap3 在线演示 Bootstrap3已经发布好几周了, 现在该是我们看看Bootstrap有什么新鲜内容的时候了…
前言 上一篇<我的技能树二>文章分享了我的技能中的前端技能和Java技能,今天继续跟大家分享的就是后端技能了. 我的技能树 我当前的技能树: 其中,标注为黄色旗帜的是基本掌握,标注为红色旗帜的为使用熟练.未标注的只是了解. 数据库 数据库 数据库是信息化系统编程的基础.因为我一直是做信息化系统的,所以这一块比较熟悉.最初熟悉的数据库是基于PB开发的Sybase,SQL Anywhere,现在已经不流行了.后来转到了SQL Server,再后来转到了Mysql,然后又熟悉了Sqlite.现在常用…
前言 上一篇<我的技能树>文章分享了我的技能成长过程,还未完成,今天继续跟大家分享. 01 我的技能树 我的当前的技能树: 其中,标注为黄色旗帜的是基本掌握,标注为红色旗帜的为使用熟练.未标注的只是了解. 上篇分享完了C#部分,下面就根据我的学习历程的先后继续讲. 02 前端开发 在上家公司上班期间,因为公司产品选型基于Winform+Devexpress(后面简称Dev),所以我对Winform和Dev都非常熟悉.我把Winform所有控件全部扒了个遍,而为了熟悉Dev,我又把Dev的官网文…
前言 今天想讲讲的是我的技术树.我最初是做CS开发的,第一阶段的技术经历是以Powerbuilder来做CS开发,第二阶段开始基于C#做winform开发,眼看前端开发越来越流行,需要更广泛的技术栈势在必行.因此以.Net为基础,我开始拓展自己的技术栈.从14年到18年,跨越了很多界限,到现在为止,应该说.Net,Java,Android,基于nodejs的web开发都积累了一些经验,可以给大家分享一下. 01 我的技能树 我对技能的培养,是很有目的性的.我在开启我的第二阶段技能增长的时候,就预…
前言 本文主要讲解如何使用TypeScript装饰器定义Express路由.文中出现的代码经过简化不能直接运行,完整代码的请戳:https://github.com/WinfredWang/express-decorator 1 为什么使用装饰器 当我们在使用Express时,经常要暴露RESTful服务,代码如下: var express = require('express'); var app = express(); app.get('/users', function(req, res…
装饰器模式 装饰器模式又称为包装(Wrapper)模式.装饰器模式以多客户端透明的方式扩展对象的功能,是继承关系的一个替代方案. 装饰器模式的结构 通常给对象添加功能,要么直接修改对象添加相应的功能,要么派生子类来扩展,抑或是使用对象组合的方式.显然,直接修改对应的类的方式并不可取,在面向对象的设计中,我们应该尽量使用组合对象而不是继承对象来扩展和复用功能,装饰器模式就是基于对象组合的方式的. 装饰器模式以对客户端透明的方式动态地给一个对象附加上了更多的责任.换言之,客户端并不会角色对象在装饰前…
转自http://blog.csdn.net/hust_is_lcd/article/details/7884320 1.认识装饰器模式 装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象添加功能.通常给对象添加功能,要么直接修改对象添加相应的功能,要么派生对应的子类来扩展,抑或是使用对象组合的方式.显然,直接修改对应的类这种方式并不可取.在面向对象的设计中,而我们也应该尽量使用对象组合,而不是对象继承来扩展和复用功能.装饰器模式就是基于对象组合的方式,可以很灵活的给对象添加所需要的…
之前有比较系统介绍过Python的装饰器(请查阅<详解Python装饰器>),本文算是一个补充.今天我们一起探讨一下装饰器的另类用法. 语法回顾 开始之前我们再将Python装饰器的语法回顾一下. @decorate def f(...): pass 等同于: def f(...): pass f = decorate(f) @语法的好处在于: 相同的函数名只出现一次,避免了f = decorate(f)这样的语句. 可读性更高,让读代码的人一眼就明白函数被装饰了哪些功能. @call()装饰…
1  装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象添加功能.通常给对象添加功能,要么直接修改对象添加相应的功能,要么派生对应的子类来扩展,抑或是使用对象组合的方式.显然,直接修改对应的类这种方式并不可取.在面向对象的设计中,而我们也应该尽量使用对象组合,而不是对象继承来扩展和复用功能.装饰器模式就是基于对象组合的方式,可以很灵活的给对象添加所需要的功能.装饰器模式的本质就是动态组合.动态是手段,组合才是目的.总之,装饰模式是通过把复杂的功能简单化,分散化,然后再运行期间,根据需…