抢票设计

  刚过的这周,慢慢恢复自己写代码的能力,当然,重要的是能够做单元测试和OOD和OOP的能力。

  尽管需求和接口有很多的设计缺陷,但是我扔可以设计有一个相对扩展性的代码。

  而且,对于Web服务的调用也更加地熟练:1)直接添加引用;2)勾选是否生成异步方法等选项;3)设定好命名空间,点击确定。4)对于以DataTable作为Web服务接口的设计来说,已经跟不上时代的潮流了,但也可以容忍,自己重新顶一个领域模型接口即可。

  爬虫的那个公共模块,也一直在改造与完善,想想当初我抽象出一个IPostString的接口,一个string GetConstructString(string htmlSource)的方法,但是很迷惑,不知道怎么传递参数,以致于每次都返回一个拼了一半的字符串,然后再继续拼。

    /// <summary>
    /// 回发的字符串
    /// </summary>
    public interface IPostString
    {
        string GetConstructPostString(string source);
    }

  当然,我那天顺手添加了一段Attributes 之后,就完全不用担心拼的问题了,体会到设计与重构的甜头,当然,在有经验的高手看来,很幼稚,对我来说,必不可少。

    /// <summary>
    /// 回发的字符串
    /// </summary>
    public interface IPostString
    {
        string GetConstructPostString(string source);
        Dictionary<string, string> Attributes { get; set; }
    }

  第一次尝试使用异步调用,虽然以前都知道一个异步模型,但还没有使用过。这次练习,算是让我对异步变成有了整体的认识。网络好文

  顺便,还学习了桥模式和半同步办异步模式

  对应抢票和抢需求的过程,熟练掌握了线程池地使用以及Work Thread线程内读写UI的方法。

  认真地对待这些小问题,然后就慢慢地有了更多的收获,这是持久战的哲学,我坚信!

原文地址:https://www.cnblogs.com/pengzhen/p/3576954.html