摘要: 动机(Motivation) 在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系”,——一个对象(目标对象)的状态发生改变,所有依赖对象(观察者对象)都将得到通知,如果这样的依赖关系过于紧密,将是软件不能很好地抵御变化。 使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系,从 阅读全文
posted @ 2019-07-04 14:09 mallocfree 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 动机(Motivation) 在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂,而且有时候支持不使用的算法也是一个性能负担。 如何在运行过程是根据需要的改变对象的算法?将算法和对象本身解耦,从而避免上述问题? Code 面向过程 使用策 阅读全文
posted @ 2019-07-02 07:54 mallocfree 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 从目的来看 创建型(Creational)模式:将对象的部分创建工作 延迟到子对象类或者其他对象,从而应对需求变化为对象创建具体实现类型引来的冲击。 结构性(Structural)模式:通过类继承或者对象组合获得灵活的类结构,从而应对需求变化为对象的结构带来的冲击。 行为型(Behavioral 模 阅读全文
posted @ 2019-06-27 15:55 mallocfree 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 为什么需要面向对象设计 变化是复用的天敌,面向对象设计最大的优势在于 抵御变化! 重新认识面向对象 理解隔离变化 从宏观层次来看,面向对象的构建方式更能适应软件的变化,能将变化所带来的影响减为最小 各司其职 从微观层次来看,面向对象的方式更强调 各个类的“责任” 由于需求变化导致的新增类型不应该影响 阅读全文
posted @ 2019-06-26 07:32 mallocfree 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 学习目标: 1.理解松耦合设计思想 2.掌握面向对象设计原则 3.掌握重构技法改善设计 4.掌握GOF核心设计模式 从面向对象谈设计模式: 1.底层思维:向下,如何掌握机器底层,从微观理解对象构造 语言构造 编译转换 内存模型 运行时机制 →封装,隐藏内部实现 →继承,复用现有代码 →多态,改写对象 阅读全文
posted @ 2019-06-25 23:10 mallocfree 阅读(267) 评论(0) 推荐(0) 编辑