失踪
失踪很久了 甚至博客服务器宕机将近半年也没有去维护,其实也没什么好的方向去写博客,之前大多也都是转载和曾经一些幼稚的言语,也舍不得删毕竟是成长路上的闲言碎语,暂时先就这样吧,以后有好的方向可能重新开个站来优化内容。
/*专注DotNet、前端开发技术*/
失踪很久了 甚至博客服务器宕机将近半年也没有去维护,其实也没什么好的方向去写博客,之前大多也都是转载和曾经一些幼稚的言语,也舍不得删毕竟是成长路上的闲言碎语,暂时先就这样吧,以后有好的方向可能重新开个站来优化内容。
弄了一上午 模拟以前C#写了一个Javascript的对象生成器,支持对象转JSON集合,还有单属性访问器。没事技术含量为了熟悉原型以及原型链做的练习。
//申明扩展类 var ExtendClass = function () { }; //属性访问器 ExtendClass.prototype.accessor = function () { this.get = function () { return this.val; } this.set = function (val) { if (arguments.length == 2) { if (arguments[1] instanceof Function) { arguments[1](val); } val = arguments[0]; } this.val = val; } } //值正确性校验 ExtendClass.prototype.isCorrectValue = function (val) { var flag = true; if (val instanceof Object && val instanceof Function && val == undefined && isNaN(isFinite)) { flag = false; } return flag; } //动态实体生成 ExtendClass.prototype.entityAccessor = function (entityList) { var entity = entityList; if (entity instanceof Object) { for (var i in entity) { var access = new extend.accessor(); this.constructor.prototype[i] = access; var et = entity[i]; var val = et["value"]; if (extend.isCorrectValue(val)) { //判断是否存在附加函数 if (et["setVerify"]) { this.constructor.prototype[i].set.call(this.constructor.prototype[i], val, et["setVerify"]) } else { this.constructor.prototype[i].set(val); } } } } }Read more “Javascript实体对象生成器”
研究了一下Github,使用它原本的管理工具虽然界面简洁明了但是还是不太习惯这种操作方式,而且公司也不能直接上外网,需要代理来访问internet网,无奈看了半天帮助原来Github是可以用SVN来管理的,小激动了一下,设置好了SVN的代理准备开始尝试配置Github代码导入到SVN。话不多说 具体的配置方法见以下步骤。
· 建立新的Repository
·填写Repository基本信息
·初始化Repository并创建Readme说明文件
·填写Readme说明文件内容
function extend(subclass, superclass) {
var F = function () {
};
F.prototype = superclass.prototype;
subclass.prototype = new F();
subclass.prototype.constructor = subclass;
subclass.super = superclass.prototype;
if (superclass.prototype.constructor === Object.prototype.constructor) {
superclass.prototype.constructor = superclass;
}
}
function override(targetObj, obj, deep) {
if (Object.prototype.toString.call(obj) !== '[object Object]') {
return;
}
for (var i in obj) {
if (obj.hasOwnProperty(i)) {
if (deep === true) {
targetObj[i] = targetObj[i] || {};
rewrite(targetObj[i], obj[i], deep);
} else {
targetObj[i] = obj[i];
}
}
}
}
中介者模式
定义:
用一个中介对象来封装一系列的对象交互。中介者使得各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
本质:封装交互
中介者模式的解决私立很简单,它通过引入一个中介对象,让其他的对象都只和中介对象交互,而中介对象知道如何和其他所有的对象交互,这样对象之间的交互关系就没有了,从而实现了对象之间的解耦。
爱尔兰咖啡的发明人是都柏林机场的酒保。因为横越大西洋的飞机常会在这个机场加油,旅客下飞机休息时很喜欢喝杯爱尔兰咖啡,所以它就随着飞航而传到世界各处。
这个酒保是为了一位美丽的空姐所调制的.
酒保在都柏林机场邂逅了这位女孩,可能是一见钟情吧,酒保非常喜欢空姐。他觉得她就像爱尔兰威士忌一样,浓香而醇美。可是她每次来到吧台,总是随着心情点着不同的咖啡,从未点过鸡尾酒。 Read more “爱尔兰咖啡:思念此生无缘人”
function extend(subclass, superclass) {
var F = function () {
};
F.prototype = superclass.prototype;
subclass.prototype = new F();
subclass.prototype.constructor = subclass;
subclass.super = superclass.prototype;
if (superclass.prototype.constructor === Object.prototype.constructor) {
superclass.prototype.constructor = superclass;
}
}
function mixin(targetObj, obj, deep) {
if (Object.prototype.toString.call(obj) !== '[object Object]') {
return;
}
for (var i in obj) {
if (obj.hasOwnProperty(i)) {
if (deep === true) {
targetObj[i] = targetObj[i] || {};
mixin(targetObj[i], obj[i], deep);
} else {
targetObj[i] = obj[i];
}
}
}
}
生成器模式
定义:
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
本质:
分离整体构建算法和部件构造。
生成器模式的重心在于分离整体构建算法和部件构造,而分步骤构建对象不过是整体构建算法的一个简单实现,或者说是一个附带产物。
要实现同样的构建过程可以创建不同的表现,那么一个自然的思路就是先把构建过程独立出来,在生成器模式中把它称为指导者,由它来指导装配过程,但是不负责每步具体的实现。当然,光有指导者是不够的,必须要有能具体实现每步的对象,在生成器模式中称这些实现对象为生成器。
这样一来,指导者就是可以重用的构建过程,而生成器是可以被切换的具体实现。
Read more “生成器模式(Builder)”
最近经常回在群里面看到有些朋友问如下这样的js写法该如何理解的的问题,虽然可能对匿名函数有些理解,但是有时候看到JQuery源码或者其他JS库中同样的写法时,就有点不理解了,今天再次分享下这方面的知识点。
(function(){
})(JQuery);
对以上写法的理解:
上面的这种写法通常叫做“块级作用域”,块级作用域的好处就是可以将匿名方法内部的变量进行私有化,当程序运行结束之后便将一些变量自动销毁。第一个()号表示次函数为一个函数表达式,其中包含了一个匿名函数,后面的一个()则表示执行这个函数表达式中的匿名方法,而JQuery则作为这个匿名函数的一个参数。
文章来自:http://www.dofactory.com/javascript-abstract-factory-pattern.aspx
Provide an interface for creating families of related or dependent objects without specifying their concrete classes.
Frequency of use (in JavaScript): medium
An Abstract Factory creates objects that are related by a common theme. In object-oriented programming a Factory is an object that creates other objects. An Abstract Factory has abstracted out a theme which is shared by the newly created objects.
整理了一下自己的博客,把英文的栏目标题都改成了中文,然后删除了一些以前发的无聊的八卦娱乐新闻还有一些无意义的文章,新的一年好好记录自己的成长。
积累和沉淀,这也是我去13年得到的最大的收获,想说的是无论是什么东西都需要积累和沉淀才能有展现自己强大的一面,就像油烟机上油渍的积累,做饭的人都知道积累数月的油渍是很难清除的除非用强效的清洁剂,自然界中琥珀的形成也是从低价值树脂到颇有价值的收藏品。知识,健康,财富也是一样,知识如果不积累就会被社会的各种“迷药”所迷惑。健康不积累就会让自己将来在病痛中饱受折磨,心理疾病也是如此。财富如果不积累会让自己的晚年生活还在忙碌中度过。很多人说理财 投资,但是我觉得最重要的还是理自己的人生。我从来都没有发财致富 光宗耀祖的觉悟,只希望自己这一生活的没那么多遗憾,就像我名字中的畅字一样 。
自己并不是一个很有文化的人,失败的学业让我失去了很多获取知识的机会,但我并不后悔,我的人生是我自己走出来的,很多道理也是自己领悟出来的。