• 设计模式漫谈之代理模式


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

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

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

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

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

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

  • 相关阅读:
    echarts 折线图(移动端)X轴显示不全
    文字超出省略号类型
    逻辑运算为true
    13年省赛总结
    PyCharm专业版破解教程
    django之定义统一返回数据格式与GET/POST装饰器
    Xmind8破解教程
    django之mysqlclient安装
    django之“static”全局设置
    django之集成第三方支付平台PaysAPI与百度云视频点播服务接入
  • 原文地址:https://www.cnblogs.com/wang-charle/p/8910206.html
Copyright © 2020-2023  润新知