码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式漫谈之代理模式

时间:2018-04-23 00:08:43      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:编程   特权   proxy   编译型   对象   class   那些事   UI   必须   

  设计模式这个东西理论上多,说的人多,能理解的人少,愿意看的人少,因此我这个浏览量上不去很正常。不过我希望帮助到真正想看的人。刚和以前同事通了电话,程序员同事之间如果想成为朋友,必须一起拼搏,等若干年后,大家回忆起来那段经历,自然友谊常在!今天去见了同事给我介绍的女朋友,小孩无娘,说起来话长,一句话,我真的需要找一个好姑娘谈恋爱结婚了。

对象与对象之间若有关系,需要一个对象能访问到另一个对象的引用。编译型语言,需要先设计这种关系(设计类),然后再复制对象。老人有言“露头椽子先糟”,在国内这个大环境下,人怕出名猪怕壮,所以等你成功后,要学会退居二线,但是你还可以做幕后黑手。你需要一个代理人行使你的特权。

接口这种东西,在语义上就是定义干那些事,属于抽象设计层的东西。解决问题都是从抽象到具体的,抽象层面先设计,不去具体实现。

废话不说,今天说代理模式,这个模式应用很广,需要理解运用,最后,我那个DAL层就用到代理模式了。还是上例子,我来解释。

//定义我就有哪些权利,(要干什么)

interface GiveGift
{
void GiveDolls();
void GiveFlowers();
void GiveChocolate();
}

//真正干的人,有权的人

class Pursuit : GiveGift
{
SchoolGirl mm;
public Pursuit(SchoolGirl mm)
{
this.mm = mm;
}
public void GiveDolls()
{
Console.WriteLine(mm.Name + " 送你洋娃娃");
}

public void GiveFlowers()
{
Console.WriteLine(mm.Name + " 送你鲜花");
}

public void GiveChocolate()
{
Console.WriteLine(mm.Name + " 送你巧克力");
}
}

//找代理者公开我这些(接口的权利)权利,

class Proxy : GiveGift
{
Pursuit gg;
public Proxy(SchoolGirl mm)
{
gg = new Pursuit(mm);
}


public void GiveDolls()
{
gg.GiveDolls();
}

public void GiveFlowers()
{
gg.GiveFlowers();
}

public void GiveChocolate()
{
gg.GiveChocolate();
}
}

//具体操作步骤

SchoolGirl jiaojiao = new SchoolGirl();
jiaojiao.Name = "李娇娇";

Proxy daili = new Proxy(jiaojiao);

daili.GiveDolls();
daili.GiveFlowers();
daili.GiveChocolate();

 

总结,代理模式,就是找个可以公开的对象。重要的东西说三遍,面向接口编程,就是面向抽象编程,不要先考虑具体实现,先抽象设计。

不说了,编程思想这东西,需要多思考,多总结。多把自己感悟的记录下来。

设计模式漫谈之代理模式

标签:编程   特权   proxy   编译型   对象   class   那些事   UI   必须   

原文地址:https://www.cnblogs.com/wang-charle/p/8910206.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!