C#与设计模式学后感想+小总结

历时将近3个月的C#与设计模式的学习终于结束了,有感而发,写下博客:

1.C#学习

首先是第一阶段的C#视频学习,当时正值期末考试期间,而因此没有怎么特别走进度,我们避开不谈;而步入寒假以后,时间变得充裕了,但是当时自己的心态很不端正,陷入了盲目追赶进度的误区,因此虽然表面看起来笔记做得很全,但实际上都是只理解了知识点的表层含义,很肤浅;而且也没有及时总结,学完了就只是学完了。

后来自己意识到了自己的问题,开始着重调整:及时总结,有所收获后不单单写在笔记里,还要总结博客:因为只有你尝试着去让他人看懂的时候,你才能真的将知识变成你的;看视频更加仔细,将视频播放速度调慢,并且遇到难点不理解的地方借助网络去解开疑惑;合理安排时间,劳逸结合(虽然这点做得不算好,有时候一学学一上午,有些困乏,不过C#视频的确有意思)。

虽然在学完之后,对一些概念(继承、抽象等概念)还是没有太立体的概念,但因为我们学的视频是针对入门新手的基础而选择的,因此并无大碍:后面的学习将会补充。

2.设计模式

设计模式的学习和之前的计算机学习项目大不一样:首次采用了结组学习的方法--有些像我们学习自考时的学习模式。

设计模式刚开始的时候,我甚至连附录里的面向对象基础还有些搞不懂(和前面C#学习操之过急有一点关系);而到了开头几个模式:比如装饰模式中的传参、方法内的嵌套、还有一些继承关系把我搞得晕头转向......不过也不知道怎么回事,自己后面学着学着,问题都开始迎刃而解了。而当时我们的学习方式是“搞懂例子中代码的运行情况和顺序”,因此也算是继续对C#学习的延伸吧,而且帮助很大,自己对继承、抽象的理解更加透彻了。

另外在第一遍学习中,我并没有写太多博客:这个倒不是因为我没总结,而是因为设计模式的学习有教材,我平时更喜欢把自己所想写到课本上,这样看起来更加方便。

设计模式的第二遍的学习则是需要转换方向:将重点放入对模式的理解,而这与我们第一遍学习的方法又不太一样了,因此自己又调整了差不多半周才开始投入到模式总结上。不过还好,借助网络的查询与理解,自认为学习过程问心无愧。

 

下面我将对C#和设计模式(代码的运行逻辑)中的某些概念进行小小的总结,也算是将之前学C#中不了解的地方再强化理解一番:

1.抽象类?接口?

设计模式中有很多“定义一个XX的接口”,但这些所谓的接口其实在代码中并不是接口--在书中,用到真正的接口(Interface)类的地方少之又少,而更多的则是一个抽象类。这些抽象类的作用是给所继承的子类提供一个规范--即继承于这个抽象类的子类必须要重写父类的方法,这就在命名上得到了规范。

这么看来,其实二者的作用是差不多的:都是为要实现的类提供标准。

2.构造方法?

在学C#视频的时候,我只是对构造方法略知一二,知道它的格式,但并不了解实际含义与作用。在设计模式中有很多用到构造方法的地方。构造方法的作用其实就是在实例化一个类的过程中给成员变量赋值。

3.传参?

可能会有同学问了,这个有什么可疑惑的啊,我们在VB中也遇到过呀?嗯...到了设计模式中,由于开始强调对象这一概念,因此“方法内包含的参数是某个对象”的情况开始变得显眼起来,举个例子:

class Finery:Person
{
    ...
    public void Decorate(Person component)
    {
        this.component=component;
    }
    ...
}
class Trouser : Finery
{        
    public override void Show()        
    {            
        Console.Write("裤子 ");
        base.Show();
    }
}

class Shoes : Finery
{
    public override void Show()
    {
        Console.Write("球鞋 ");
        base.Show();
    }
}

客户端的代码:

static void Main(string[] args)
{
    ...
    Sneakers snk = new Sneakers();
    Trousers tos = new Trousers();
    ...
    tos.Decorate(snk);
    ...
}

这几行代码的大致含义就是将snk对象被作为一个参数传给tos对象的Decorate方法中,其实本身思路不难理解,只是中间存在的一个过程:在客户端中实例化的对象名是snk,而传到Decorate方法的过程中,变成了component参数传到了方法内。

在这之后的设计模式学习,我遇到了更多这种情况,因此很感谢我们小组当时能对这些问题的“死缠烂打”,才有了后面对C#运行更加深刻的认识。

 

问题还有很多很多,也许现在我们刚刚启程,但只要拥有一颗充满求知欲的心,再多的问题也会迎刃而解。做好自己,调整心态,脚踏实地地前进吧。

你可能感兴趣的:(C#与设计模式学后感想+小总结)