2017-04-05 ruki
描述语法 xmake的描述语法基于lua实现,因此描述语法继承了lua的灵活性和简洁性,并且通过28原则,将描述作用域(简单描述)、脚本作用域(复杂描述)进行分离,使得工程更加的简洁直观,可读性非常好。 因为80%的工程,并不需要很复杂的脚本控制逻辑,只需要简单的几行配置描述,就可满足构建需求,基于这个假设,xmake分离作用域,使得80%的xmake.lua文件,只需要这样描述: lua target("demo") set_kind("binary") add_files("src/*.c") 而仅有的20%的工程,才需要这样描述: ```lua target("demo") set_kind 继续阅读 »
2015-10-24 Eric Wang
最近邻居 解题思路: 1. 使用JDK中的Point2D类,该类定义了坐标系空间中的一个点 2. Point2D是一个抽象类,但是在该类内部定义了静态的Double类,并且Double继承自Point2D 3. 可以通过Double的构造方法来实例化空间中的某个点 4. 将所有的输入数据全部实例化并存放在一个Point2D.Double的数组中 5. 对该数组进行暴力破解,计算其中任意两个点之间的距离,时间复杂度为$O(n^2)$,并保留下最小的两个点的编号,且编号小的在前 Java算法实现: ```java import java.awt.geom.Point2D; import java.util.Scanner; /* 继续阅读 »
2016-10-12 曹强
装饰者模式:给对象动态地增加职责。跟继承相比,装饰者是一种更轻便灵活的做法,是一种“即用即付”的方式。 js的装饰者 假设我们在编写一个飞机大战游戏,这个飞机可以升级,发射导弹,发射原子弹 var plane = { fire: function() { console.log('发射普通子弹'); } }; var missileDecorator = function() { console.log('发射导弹'); }; var atomDecorator = function() { console.log('发射原子弹'); }; var fire1 = plane.f 继续阅读 »
2014-05-08 W.Y.
AOP
原文连接:Intro to Aspect Oriented Programming 本文简单地介绍了 AOP 的原理,以及 AOP 与其他方式的异同,并没有涉及太多的复杂逻辑,另外推荐下面两篇文章,这些文章中都间接或直接提及了 AOP: 用 AOP 改善 JavaScript 代码 使用 JavaScript 拦截和跟踪浏览器中的 HTTP 请求 面向切面编程(AOP)是一种非侵入式扩充对象、方法和函数行为的技术。通过 AOP 可以从“外部”去增加一些行为,进而合并既有行为或修改既有行为。 虽然有很多技术可以用来增加和合并行为,例如继承、组合、委托,然而,在很多情况下,AOP 被证明是更灵活和更少侵入的方式,非常值得将其纳入我 继续阅读 »
2016-08-03 曹强
引用类型 Object类 ```text ECMAScript中的所有类都是由Object类继承而来。 Object类具有下列属性: Constructor:对创建对象的函数的引用(指针),对于Object类,该指针指向原始的Object()函数 Prototype:对该对象的对象原型的引用。 Object类还有几个方法: 1、PropertyIsEnumerable(property):判断给定的属性是否可以用for...in语句进行枚举 2、ToString():返回对象的原始字符串表示。 3、ValueOf():返回最适合该对象的原始值。对于许多类,该方法返回的值都与toString()的返回值相同。 继续阅读 »
2014-08-25 Lingxian Kong
因为工作的原因,这一期的动态憋了好久,但还是憋出来了。确实需要耗费大量的时间和精力去阅读和理解,一方面是给自己做笔记,另一方面也算了为了提高因为的阅读吧。 业界动态 Oracle发布了Oracle VM 3.3,包含OpenStack软件包的技术预览版,继承了Oracle数据库。其虚拟化技术基于Xen。基于Oracle虚拟化平台,guestOS可以支持Oracle Linux, Oracle Solaris, and Windows 由几个来自VMware前员工开发了一个OpenStack云管理平台--Platform9,管理已有的基础设施,control plane as a service,这里有一个描述,比较有意思: 继续阅读 »
2017-02-10 Lu Huang
作为一个开源工具,caffe的代码十分庞大,但是组织的还是比较好的,本文主要介绍其代码框架。由于caffe大部分使用C++写的,因此,读者需要掌握C++的基本知识,包括:封装、继承、多态等。 1. caffe目录结构 在caffe根目录下使用tree -d查看整个代码的文件夹组织情况,如下。 继续阅读 »
2015-04-11 derekchan
在开发项目的时候,常常会利用继承来实现子父类的功能传递。比如,我们开发一个餐厅点餐系统,点餐系统现在有饭类,面类这两种主食可以选择,搭配主食的有饮料,小食。 起初的架构是这样的: [][1] 继续阅读 »
2016-10-13 曹强
php
简介 根据目的和范围,设计模式可以分为五类。按照目的分为:创建设计模式,结构设计模式,以及行为设计模式。按照范围分为:类的设计模式,以及对象设计模式。下面分别介绍 。 创建设计模式 创建设计模式(Creational patterns),用于创建对象时的设计模式。更具体一点,初始化对象流程的设计模式。当程序日益复杂时,需要更加灵活地创建对象,同时减少创建时的依赖。而创建设计模式就是解决此问题的一类设计模式。 结构设计模式 结构设计模式(Structural patterns),用于继承和接口时的设计模式。结构设计模式用于新类的函数方法设计,减少不必要的类定义,减少代码的冗余。 行为设计模式 行为设计模式(Behavio 继续阅读 »
2016-08-02 craneyuan
uml
在UML类图中,常见的有以下几种关系: 泛化(Generalization) 实现(Realization) 关联(Association) 聚合(Aggregation) 组合(Composition) 依赖(Dependency) 各种关系的强弱顺序: 泛化= 实现> 组合> 聚合> 关联> 依赖 more 泛化(Generalization): 类之间的继承关系用泛化。 【箭头指向】:带三角箭头的实线,箭头指向父类 实现(Realization) 类实现接口的关系使用实现。 【箭头指向】:带三角箭头的虚线,箭头指向接口 关联(Association) 类之间的拥有关系用关联。 【箭头及指向】:带 继续阅读 »