首页 > 其他 > 详细

设计模式漫谈之代理模式

时间:2018-04-22 23:01:21      阅读:224      评论:0      收藏:0      [点我收藏+]

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

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

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

废话不说,今天说代理模式,这个模式应用很广,需要理解运用,最后,我那个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();

 

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

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

设计模式漫谈之代理模式

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!