javascript设计模式-代理模式(11)

来源:互联网 发布:电脑淘宝没有登陆页面 编辑:程序博客网 时间:2024/05/21 18:47

代理(proxy)是一个对象,它可以用来控制对一个对象的访问。它与另外那个对象实现了同样的接口,并且会把任何方法调用传递到那个对象。代理模式最基本的形式是对访问进行控制,代理对象所做的不外乎节制对本地的访问,它不会添加方法或修改方法,也不会简化接口。它实行的接口与本体完全相同,所有对它进行的方法调用都会被传递给本地

//代理模式(proxy):代理也是对象,他的目的就是为了节制(控制)对本体对象的访问var LibraryInterface = new BH.Interface('LibraryInterface', ['addbook', 'findbook', 'checkoutbook', 'returnbook']);var Book = function(id, title, author) {    this.id = id;    this.title = title;    this.author = author;};//图书馆(本体对象 , 实例化图书馆需要消耗很多的资源)var Library = function(books) {    this.books = books;};Library.prototype = {    constructor: Library,    addbook: function(book) {        this.books[book.id] = book;    },    findbook: function(id) {        if (this.books[id]) {            return this.books[id];        }        return null;    },    checkoutbook: function(id) {        //电脑登记..交押金        return this.findbook(id);    },    returnbook: function(book) {        //电脑登记(...已还)        //计算费用(计算余额)        this.books[book.id] = book;    }};//图书馆的代理对象var LibraryProxy = function(books) {    alert('产生代理对象,但是并没有产生真正的本体对象!');    this.books = books;    this.library = null; //定义一个空对象};LibraryProxy.prototype = {    constructor: LibraryProxy,    initializeLibrary: function() {        if (this.library == null) {            alert('真正的本体对象!');            this.library = new Library(this.books);        }    },    addbook: function(book) {        this.initializeLibrary();        //实际上具体做事情的还是本体对象自己本身        this.library.addbook(book);    },    findbook: function(id) {        this.initializeLibrary();        return this.library.findbook(id);    },    checkoutbook: function(id) {        this.initializeLibrary();        return this.findbook(id);    },    returnbook: function(book) {        this.initializeLibrary();        this.library.returnbook(book);    }};//实例化的是代理对象:推迟本体对象实例化的时间,什么时候具体去做事情了,再去实例化它// hibernate: get(全查询出来)   load(返回代理对象)var proxy = new LibraryProxy({    "01": new Book('01', 'java', 'z3'),    "02": new Book('02', 'js', 'z4')});alert(proxy.findbook('01').title);
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 思维方式 思维是什么 思维模式 思维图片 什么是思维 思维方法 思维图 思维的意思 思维中断 思维形式 思维逻辑 非理性思维 抽象思维和逻辑思维 思维的品质 思维的 思维活跃 全新思维 开拓思维 理性思维 思维的分类 思维缓慢 思维导图怎么画 思维导图图片 思维导图简单画法 英语思维导图 数学思维导图 思维导图软件 思维导图大全集 思维导图模板 逻辑思维训练500题 小学生思维导图图片 历史思维导图 童年思维导图 英语思维导图漂亮简单 有理数思维导图 生物思维导图 敬业与乐业思维导图 数学思维导图怎么画 在线思维导图 树状思维导图 语文思维导图