b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

head first设计模式?radiusplugin?深入理解计算机系统pdf?Head.First设计模式学习笔记

电脑杂谈  发布时间:2016-06-11 10:03:24  来源:网络整理

你是否正在寻找关于head first设计模式的内容?让我把最有价值的东西奉献给你:

head first设计模式_radiusplugin_深入理解计算机系统pdf

Head.First设计模式学习笔记

对象是什么?
--从概念层面讲,对象是某种拥有责任的抽象。
--从规格层面讲,对象是一系列可以被其他对象使用的公共接口。
--从语言实现层面讲,对象封装了代码和数据.

三大机制:
--封装,隐藏内部实现
--继承,服用现有代码
--多态,改写对象行为

设计原则:

1、封装变化。找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起。

2、针对接口编程,而不是针对实现编程。(针对接口编程的真正意思是:针对超类型(supertype)编程,关键就在于多态)

举例说明:

假设有一个抽象类Animal,有两个具体的实现(Dog与Cat)继承Animal。

image

针对实现编程的做法:Dog d = new Dog();d.bark();

针对接口编程的做法:Animal animal = new Dog();animal.makeSound();

或者:Animal animal = getAnimal();animal.makeSound();

3、多用组合,少用继承,。

原因:

a、继承会使类无限膨大,可能会使类变得臃肿。

b、子类可能会继承父类中那些无用甚至有害的方法。

c、组合比继承更灵活,可以实现在执行中动态改变对象的功能。

4、为了交互对象之间的松耦合设计而努力。

5、类应该对修改关闭,对扩展开放。

6、要依赖抽象,不要依赖具体类。
解释:不要让高层组件依赖低层组件,而且,不管高层组件还是低层组件,两者都应该依赖于抽象。
避免违反该原则的几个方针:
1)、变量不可以持有具体类的引用。
如果使用new,就会持有具体类的引用,可以使用工厂来避开这种引用。
2)、不要让类派生自具体类。
如果派生自具体类,就会依赖具体类,可以派生自抽象或接口。
3)、不要覆盖基类中已实现的方法。
如果覆盖基类中已实现的方法,那么基类就不是一个真正适合被继承的类。基类中已实现的方法应该被所有子类所共享。


设计模式:

设计模式--在软件设计过程中某一类常见问题的一般性解决方案.
面向对象设计模式-描叙了面向对象设计过程中,特定场景下,类与相互通信对象之间常见的组织关系.

1.策略模式--定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户

策略模式的结构(源自吕震宇 博客)

head first设计模式?radiusplugin?深入理解计算机系统pdf?Head.First设计模式学习笔记


这个模式涉及到三个角色:

  • 环境(Context)角色:持有一个Strategy类的引用。
  • 抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。
  • 具体策略(ConcreteStrategy)角色:包装了相关的算法或行为。

  • 最初的策略模式是有缺点的,客户端必须知道所有的策略类,并自行决定使用哪一个策略类。这就意味着客户端必须理解这些算法的区别,以便适时选择恰当的算法类。换言之,策略模式只适用于客户端知道所有的算法或行为的情况

    2.观察着模式--定义了对象之间一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新.

    实现观察者模式的方法不止一种,但以包含Subject和Observer接口的类设计的做法最为常见
    《Head.First设计模式》的学习笔记(3)--观察者模式(长空新雁的.Net世界)

    设计模式随笔系列:气象站的故事-观察者模式(Observer)[原]

    Subject(被观察的对象接口)

    l 规定ConcreteSubject的统一接口;

    l 每个Subject可以有多个Observer;

    ConcreteSubject(具体被观察对象)

    l 维护对所有具体观察者的引用的列表;

    l 状态发生变化时会发送通知给所有注册的观察者。

    Observer(观察者接口)

    l 规定ConcreteObserver的统一接口;

    l 定义了一个update()方法,在被观察对象状态改变时会被调用。

    ConcreteObserver(具体观察者)

    l 维护一个对ConcreteSubject的引用;

    l 特定状态与ConcreteSubject同步;

    l 实现Observer接口,通过update()方法接收ConcreteSubject的通知。

    怎么样,现在总该有点感觉了吧?下面还有一个顺序图,再体会体会~

    head first设计模式?radiusplugin?深入理解计算机系统pdf?Head.First设计模式学习笔记


    本文来自电脑杂谈,转载请注明本文网址:
    http://www.pc-fly.com/a/shenmilingyu/article-8633-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 皆口裕子
        皆口裕子

        快射炮

        • 宗楚客
          宗楚客

          有的1000块都还不一定能拍出这效果呢

      热点图片
      拼命载入中...