【实例简介】

SyntaxHighlighter,代码高亮

【实例截图】


文件:590m.com/f/25127180-493827392-6c240a(访问密码:551685)

【核心代码】

var brushes = [‘Css’, ‘CSharp’, ‘JScript’,‘PHP’];

$(document).ready(function () {
var html = ‘’;

$.each(brushes, function (index) {var name = this;html  = '''<div class="test-wrap">''<h1>''<a href="#theme'   (index   1)   '">next</a> ''<a name="theme'   index   '">'name'</a>''</h1>';$.ajax({url: 'brushes/'   name.toLowerCase()   '.html',type: 'GET',dataType: 'text',async: false,success: function (data) {html  = data;},error: function () {html  = '<p>Not found...</p>';}});html  = '</div>\n';if (index % 2 != 0)html  = '<div style="clear:both"></div>\n';
});$('#output')[0].innerHTML = html;
$('#output a[name]:first').attr('name', 'top');
$('#output a[href]:last').attr('href', '#top').html('top');function path() {var args = arguments, result = [];for (var i = 0; i < args.length; i  )result.push(args[i].replace('@', 'scripts/'));return result
};SyntaxHighlighter.autoloader.apply(null, path('applescript            @shBrushAppleScript.js','actionscript3 as3      @shBrushAS3.js','bash shell             @shBrushBash.js','coldfusion cf          @shBrushColdFusion.js','cpp c                  @shBrushCpp.js','c# c-sharp csharp      @shBrushCSharp.js','css                    @shBrushCss.js','delphi pascal          @shBrushDelphi.js','diff patch pas         @shBrushDiff.js','erl erlang             @shBrushErlang.js','groovy                 @shBrushGroovy.js','java                   @shBrushJava.js','jfx javafx             @shBrushJavaFX.js','js jscript javascript  @shBrushJScript.js','perl pl                @shBrushPerl.js','php                    @shBrushPhp.js','text plain             @shBrushPlain.js','py python              @shBrushPython.js','ruby rails ror rb      @shBrushRuby.js','sass scss              @shBrushSass.js','scala                  @shBrushScala.js','sql                    @shBrushSql.js','vb vbnet               @shBrushVb.js','xml xhtml xslt html    @shBrushXml.js')

);

SyntaxHighlighter.all();

以下内容无关:

-------------------------------------------分割线---------------------------------------------

1、概述
  什么是适配器模式?

适配器模式是一种结构型设计模式。适配器模式就是:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
  用电器来打个比喻:有一个电器的插头是三脚的,而现有的插座是两孔的,要使插头插上插座,我们需要一个插头转换器,这个转换器即是适配器。

适配器模式涉及3个角色:

源(Adaptee):需要被适配的对象或类型,相当于插头。
适配器(Adapter):连接目标和源的中间对象,相当于插头转换器。
目标(Target):期待得到的目标,相当于插座。
2、适配器模式UML图

图片来自网络

通过上面UML图可以知道,客户端期待的接口或者对象通过适配器的转换得到了满足,Adapter通过内部包装Adaptee对象把源对象转换成客户端期待的对象。

3、适配器模式分类
  适配器模式包括3种形式:

类适配器模式:类适配器使用的是继承的方式,一般来说无法对其子类进行适配
对象适配器模式:对象适配器使用的是组合的方式,子孙类都可以被适配。另外,对象适配器对于增加一些新行为非常方便,而且新增加的行为同时适用于所有的源。
接口适配器模式(又称缺省适配器模式):接口适配器模式(缺省适配模式)基本思想是,为一个接口提供缺省实现,这样子类可以从这个缺省实现进行扩展,而不必从原有接口进行扩展。
  可以说对象适配器模式是另外6种结构型设计模式的起源(图片源自网络)。

4、三种适配器模式详解
  适配器模式的三种实现方式及代码实例详解,用电器来打个比喻:有一个电器的插头是两脚的,而现有的插座是三孔的,要使插头插上插座,我们需要一个插头转换器,这个转换器即是适配器。

SyntaxHighlighter示例源码[代码高亮]相关推荐

  1. Vue - 实现垂直菜单分类栏目,鼠标移入后右侧出现悬浮二级菜单容器效果(完整示例源码,详细代码注释,一键复制开箱即用)

    前言 网上的教程都太乱了,各种杂乱无注释代码.图片资源丢失.一堆样式代码,根本无法改造后应用到自己的项目中. 本文实现了 在 Vue / Nuxt 项目中,垂直分类菜单项,当用户鼠标移入菜单后,右侧自 ...

  2. Asp.Net Web Api 2 实现多文件打包并下载文件示例源码

    前言 最近由于工作和个人事务,站点也好久没更新了,但这并不影响我对.NET的热情.站点的更新工作还是得想办法抽时间来完成的. 提要 今天利用中午的时间来写一篇关于Asp.Net Web Api下载文件 ...

  3. Asp.net2.0水晶报表的一些示例源码

    最近关注了一下Asp.net2.0中水晶报表的资料,发现示例少之又少(怀疑是水晶报表免费的比较少的缘故),搜集到了Asp.net官方的许多示例源码,试了几个还不错,这里发给大家分享一下(我仅把Asp. ...

  4. Window XP驱动开发(二) 环境搭建(VS2008+WDK+DDKWzard)及示例源码分析

    郁闷,做了WCE嵌入式驱动这么久还没热身够,又被调到做window xp下的驱动开发.没办法.只能受令了. 现在就开始自己的学习之旅吧. 转载请标明是引用于 http://blog.csdn.net/ ...

  5. Tyrion中文文档(含示例源码)

    Tyrion是一个基于Python实现的支持多个WEB框架的Form表单验证组件,其完美的支持Tornado.Django.Flask.Bottle Web框架.Tyrion主要有两大重要动能: 表单 ...

  6. Tyrion 中文文档(含示例源码)

    原文出处: Mr.Seven   Tyrion是一个基于Python实现的支持多个WEB框架的Form表单验证组件,其完美的支持Tornado.Django.Flask.Bottle Web框架.Ty ...

  7. 支付宝扫码支付示例源码

    支付宝扫码支付示例源码 支付宝扫码付,相对来说根据开发文档开发的话,基本上可以一遍过的.直接上代码. controller: @RequestMapping(value = {"/api/a ...

  8. vue - element <upload> 组件批量上传文档,可携带其他表单数据项一同与文件 “手动提交“ 服务器(类似百度文库系统批量上传前端界面与逻辑)超详细教程示例源码,提供界面与逻辑完整源码

    效果图 本示例使用的是 element 组件库,其实什么组件库都行(逻辑是一样),只要你是 vue.js 项目就能使用本教程. 本文实现了 vue + element 使用 upload 组件批量上传 ...

  9. php - 基于 webuploader 视频大文件分片分段上传,支持断点续传(刷新、关闭页面、重新上传、网络中断等情况)带进度条,前端后端都有示例源码详细教程

    效果图 文件上传前先检测该文件是否已上传,如果已上传提示 "文件已存在",如果未上传则直接上传. 基于 php+webuploader的大文件分片上传,带进度条,支持断点续传(刷新 ...

最新文章

  1. 关于 OpenIdConnect 认证启用 HTTPS 回调 RedirectUri 不生效问题
  2. soalris小記...
  3. 留存方法论:如何培养用户使用习惯?
  4. Lumen开发:如何向 IoC 容器中添加自己定义的类
  5. MySQL安装错误:/usr/local/mysql/libexec/mysqld: unknown option '--skip-federated'
  6. 中本聪愿景大会(SVC):BCH最贴近中本聪白皮书
  7. 数据挖掘:原理与实践(基础篇)(进阶篇)
  8. MetaTrader5平台 Python
  9. [bugbank]漏洞挖掘奇思妙想
  10. 使用计算机辅助翻译,计算机辅助翻译方法
  11. 慈善基金会网站建设的步骤和流程
  12. Geforce Experience无法登录的解决方法
  13. 农用化学活性成分的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  14. 正确的序号及标点使用格式(参考文)
  15. 优卡仕广告一体机——商用显示设备专家
  16. 平板时代即将到来,写在即将发布Win8 Surface平板和iPad Mini之际
  17. OSPF DR选举详解
  18. 非分区表转换为分区表的三种方式
  19. [CF1039E]Summer Oenothera Exhibition[根号分治+lct]
  20. 各种JSON技术对比(Json-lib,Jackson,Gson,Fastjson)

热门文章

  1. 爱数mysql恢复真慢_恍然大悟,原来爱数AnyShare Family 7是这样解决海量小文件备份难题的...
  2. 大数据告诉你绩优的银行柜员长啥样!
  3. 鸿蒙os上海交大教授,等了两年,鸿蒙OS明天发布,十大特性抢先看!
  4. 总结的面试中常见65种应聘技巧回答
  5. Max3成功刷入原生Android,小米Max 2用户类原生系统福利:第三方开发者为其适配LineageOS...
  6. 二自由度云台扫描算法_基于HuskyLens人脸识别的二自由度自动跟踪云台
  7. 公安部网安局公布2020年十大网络黑产案例
  8. Ubuntu 18.04 root启动vscode无反应的解决办法
  9. 计算机毕业设计Node.js+Express洗浴管理系统(源码+程序+lw+远程调试)
  10. Oracle收回权限 创建角色