目录

  • 1 研磨.NET各类常用设计模式
    1. 01.面向对象基础

      00:52:41

研磨.NET各类常用设计模式(设计模式六大原则+14种经典模式案例)

1013人在学
公众号二维码

公众号

小程序二维码

小程序

课程详情

我要提问

前言:
   从很多方面来看,本课程实际上是在复述我自己学习和使用设计模式的经历,同很多大师一样,先掌握模式本身,再学习模式背后的思想,然后,又将这种理解扩展、延伸、复用、改进……
    但是现在回想起来,我发现自己那时大多都是遵循大多数前辈的建议行事,但并未理解面向对象的设计全部威力,直到开始学习设计模式,我们的面向对象设计能力才得以扩展和加强。一开始就不可收拾,对设计模式着了迷,很喜欢研究别人的模式,很喜欢分析和比较,因为只有分析和比较才能领悟出新的东西,在叹服别人思想的闪光点的时候,自己也在思考。
同时,还注意到很多刚从事面向对象设计的人通过对设计模式的练习和领悟,写出的程序居然和大师级人物不相上下。设计模式更多的展示了优秀的的面向对象设计实例,阐明了基本面向对象设计原则,而这些对于初学者更快设计出成熟的方案大有帮助。一次又一次的思索,一次又一次的改进,我发现,使用思想作为武器,一段代码,写上20遍,收获是越来越多的,就像秦始皇统一六国的感觉,越来越美妙,妙不可言。我已经完全相信:设计模式是面向对象发明以来在软件设计领域出现的最伟大的东西。
    还有一个发现就是,一般专家容易建议先学习面向对象,打好基础,然后开始研究设计模式,但是在我的研究中,如同我研究设计模式一样,我惊讶的发现,在学习面向对象的同时,学习设计模式的学生,往往能够更好的适应工作要求,比仅仅学习面向对象的学生进步更快,而且,他们对面向对象设计模式的掌握从经验、熟练度上说几乎和老手一样(估计这也是很多老手反对的一个原因吧)。
课程对象:
           1.掌握C#基本语法的初学者

            2.想提升面向对象理解的学友
            3.想学习软件架构思想的工作者
            4.职业发展陷入瓶颈的大牛
            5.想掌握软件设计的思考者
            6.有思想、有准备的人
            7.想去大公司成功应聘的求职者
            8.想提升自己收入的白领
            9.想积累软件开发和设计经验的饿汉
            10.所有懂得欣赏面向对象思想的同仁

课程安排:
1.面向对象基础:
从本质上告诉你什么叫封装、继承、多态,他们在内存的7个区域上是怎么分配的?语言本身做了些什么而编译器又做了些什么?这些编译后的IL语言各是什么含义?   怎么认清他们的本质?从类到对象都经历了哪些复杂的过程?是不是也和婴儿一样经历了怀胎、分娩的过程?继承到底在内存上是怎么分配的?堆栈上的方法表是如何维护的?重载是如何区分的?晚绑定和编译时绑定的区别是什么?
2、设计模式六大原则:开闭原则仅仅是对修改开放那么简单吗?职责单一原则这个职责单一的标准是什么?是功能?是业务?都不是……依赖倒置是怎么回事?聚合和组合以及继承到底该怎么用?里氏替换到底替换了谁?为什么要替换?
3.单例方法模式:对系统说:“你是我的唯一”。谁在用,android? Iphone?还是塞班?还有谁在用,应用软件还是系统工程?怎么用,我有5种写法,各有千秋你看着办,看着用……
4、工厂方法模式:拖拉机厂也能造出坦克来?能,为什么能?还能造出飞机来呢。软件为什么要变?需求怎么变?变,是不可避免的,那我们怎么应对变?唯一的永恒的应对方法就是我们不变。从简单工厂到工厂模式,层层剖析,告诉你,变化在哪里?哪里会引起变化?如何去应对?
5、抽象工厂模式:社会工业化大生产时代的软件项目,软件是工程,就需要按照工程要求去做,从原始的作坊式生产到现在的工业革命,不光是告诉了你什么是抽象工厂,还手把手教着搭建,应用,整理出搭建步骤细节,同时给出多个实例,增加大家对抽象工厂的理解,提升模式应用项目的实际经验。
6、模板方法模式:现代化大生产
7:策略模式:我变你不变:8

8、观察者模式:时代不同了,大家别落伍啊
9、装饰模式:看疗效,也得看广告
10、门面模式:永远的10086
11、代理模式:我们的钱到底去哪里了
12、适配器模式:56个民族是一家
13、命令模式:请排队挂号
14、访问者模式:看起来很美

课程部分图形解说: 

 

1、面向对象设计原则图解说明:

2、抽象工厂模式图解说明:

3.工厂类等其他解说图解:

 

 

 

 

课程总结:
 在讨论设计模式的过程中,我们讨论了面向对象范型的原则,明白了对象是具有明确定义的责任的事物,对象一般只需要对自己负责,封装有3个层次,指的是任何形式的隐藏,如数据隐藏、实现隐藏、类隐藏、设计隐藏、业务隐藏、实例化隐藏、功能隐藏……使用共性和可变性分析抽象出行为和数据的变化,如何按接口设计,将继承看成一种将变化概念化的方法,而不是创建已有对象的特殊情形。研究了共性和可变性分析与设计模式之间的关系,懂得了如何按责任分解问题领域,模式和从背景设计的关系,模式内部的关联,模式与敏捷编程实践。
 总之,我们以后应用这些原则去看待设计模式就可以一步一步走向大师之路:
 我到底想隐藏什么实现?
 我的模式中有哪些共性?
 我研究的对象的责任到底是什么?
 这些对象之间有什么关系?
 我的模式本身怎么成为从背景设计的微观示例?
 最后,祝大家有所收获,有所成长、有所建树……


评价(0) 立即评论
0/150