• 优质范文
  • 工作总结
  • 工作计划
  • 作文大全
  • 心得体会
  • 述职报告
  • 实习报告
  • 写作方案
  • 教案反思
  • 演讲稿
  • 发言稿
  • 读书笔记
  • 精美散文
  • 读观后感
  • 范文大全
  • 当前位置: 博通范文网 > 教案反思 > 正文

    观察者模式实验报告

    时间:2021-10-07 来源:博通范文网 本文已影响 博通范文网手机站

    软件设计与体系结构

    实 实

    告 课程名称 软件设计与体系结构 课程编号 0920116 实验项目名称

    观察者模式案例 学号

    班级

    姓名

    专业

    学生所在学院

    指导教师

    实验室名称地点

    实验时间

    实验名称:

    观察者模式案例

    实验目的:观察者模式(Observer Pattern)是设计模式中行为模式的一种,它解决了上述具有一对多依赖关系的对象的重用问题。此模式的参与者分为两大类,一类是被观察的目标,另一类是观察该目标的观察者们。正因为该模式是基于“一对多”的关系,所以该模式一般是应用于由一个目标对象和 N 个观察者对象组成(当然也可以扩展为有多个目标对象,但我们现在只讨论前者)的场合。当目标对象的状态发生改变或做出某种行为时,正在观察该目标对象的观察者们将自动地、连锁地作出相应的响应行为。

    通过本次实验了解观察者模式的原理。并能够运用观察者模式来进行编程。

    实验内容

    1 UML类图

    2 程序的源代码 public class ObserverApp {

    public static void main(String args[]) {

    // Create the Subject and Observers.

    ConcreteSubject i = new ConcreteSubject("IBM", 120.10);

    ConcreteSubject j = new ConcreteSubject("IBM", 120.10);

    NameObserver nameObs = new NameObserver();

    PriceObserver priceObs = new PriceObserver("IBM","张三");

    PriceObserver priceObss = new PriceObserver("IBM","李四");

    // Add those Observers!

    i.addObserver(nameObs);

    i.addObserver(priceObs);

    j.addObserver(nameObs);

    j.addObserver(priceObss);

    // Make changes to the Subject.

    i.setName("张三");

    j.setName("李四");

    i.setPrice(120.10);

    j.setPrice(120.10);

    i.setPrice(121.00);

    j.setPrice(121.00);

    i.setPrice(120.50);

    j.setPrice(120.50);

    i.setPrice(120.75);

    j.setPrice(120.75);

    }

    }

    import java.util.Observable; public class ConcreteSubject extends Observable{

    private String name;

    private double price;

    public ConcreteSubject(String name, double price) {

    this.name = name;

    this.price = price;

    }

    public String getNameone() {return name;}

    public double getPrice() {return price;}

    public void setName(String name) {

    this.name = name;

    setChanged();

    notifyObservers(name);

    }

    public void setPrice(double price) {

    this.price = price;

    setChanged();

    notifyObservers(new Float(price));

    }

    }

    import java.util.Observer; import java.util.Observable; public class NameObserver implements Observer{

    private String name;

    public NameObserver() {

    name = null;

    }

    public void update(Observable obj, Object arg) {

    if (arg instanceof String) {

    name = (String)arg;

    }

    }

    }

    import java.util.Observer; import java.util.Observable; public class PriceObserver implements Observer{

    private float price;

    private String name1;

    private String name2;

    public PriceObserver(String namef,String names){

    price = 0;

    name1 = namef;

    name2 = names;

    }

    public void update(Observable obj, Object arg) {

    if (arg instanceof Float) {

    price = ((Float)arg).floatValue();

    System.out.println("通知到股民

    "+name2+" "+name1+"最新股价为"+price);

    }

    } }

    3实验截图

    对该模式的认识

    经过本次观察者模式的实验,通过自己动手编代码,是自己理解观察者模式机制,并且知道观察者模式有以下的优点:第一、观察者模式在被观察者和观察者之间建立一个抽象的耦合。被观察者角色所知道的只是一个具体观察者列表,每一个具体观察者都符合一个抽象观察者的接口。被观察者并不认识任何一个具体观察者,它只知道它们都有一个共同的接口。

    由于被观察者和观察者没有紧密地耦合在一起,因此它们可以属于不同的抽象化层次。如果被观察者和观察者都被扔到一起,那么这个对象必然跨越抽象化和具体化层次。

    第二、观察者模式支持广播通讯。被观察者会向所有的登记过的观察者发出通知。经过本次实验课的练习,我明白了编代码也是一种技巧,而设计模式便是大家提炼出来的有技巧编代码。使我对软件设计与体系结构这门课有了浓厚的兴趣,相信在学习这门课的知识,会让我获益良多。

    扣分原因(有扣分时填写)

    扣分

    最喜欢开头!

    作者太给力了。

    广西大学环境工程基础实验

    实验题目: 湖塘水体和沉积物中微生物的观察

    姓名:学号:

    班级:组别:

    指导教师:

    实验(1)湖塘水体和沉积物中微生物的观察和计数

    1.实验概述

    1.1实验目的及要求

    水体和沉积物是水生生物繁衍生息的基本场所。本实验通过实地调查和实验室观察实验,对湖塘水体和沉积物中微生物观察和定性,初步了解湖塘水体和沉积物中微生物的种类和分类;了解其对水体净化的正面和负面的影响。

    1.2实验原理

    (1)显微镜的原理

    (2)血球计数板的结构和计算方法。

    血球计数板是一块比较厚的特制玻片。玻片中央刻有4条槽,中央两条槽之间的平面比其他平面略低,中央有一个小槽,槽两边的平面上刻有9个大方格,中间的一个大方格为计数室,其长和宽均为1mm,深度0.1mm,体积0.1m3。计数室的规格是把大方格分成16个中方格,每一个中方格有分成25个小方格,总共有400个小格。

    血球计数板的计算方法是:先求得每个中方格中微生物的平均值,乘以中格数,即为一个大格中的总微生物数,再乘以10000,即为稀释后的溶液中的总微生物数。如要换成原液中的微生物总数,乘以稀释倍数即可。

    为简化计,通常取4个角上的4个中格进行计数,取其平均值,作为每个中格中微生物的平均值。

    计算公式:微生物数(mL)=(100个小格内的微生物数/100)*400*10000*稀释倍数

    2.实验内容

    2.1实验方案设计

    选择一个池塘,对湖塘和水体和沉积物采样,观察其中微生物并计数。要求手绘观察图像,计算微生物数量。

    2.1.1实验设备和材料

    (1)实验设备

    显微镜、血球计数板、载玻片、盖玻片、滴管、移液管

    (2)实验材料

    校园池塘的水体和沉积物

    2.2实验过程(实验步骤、记录、数据、分析 )

    (1)用压滴法制作表本片

    取一块洁净的载玻片置于实验平台上,用滴管吸取湖水或含有沉积物的混合液,滴加在载玻片中央,用干净的盖玻片覆盖在滴液上,不要有气泡,即制成标本片。

    (2)用显微镜观察标本片上的微生物。

    (3)加被测样品到血球计数板

    取干净的血球计数板,用盖玻片盖住计数室,用细口滴管吸取少量已经充分摇匀的湖水和沉积物的混合液,滴于盖玻片边缘,微生物自行深入计数室,静止5-10min,待微生物自然沉降稳定后计数。

    (4)计数

    先用低倍镜寻找大方格网的位置(视野不要太亮),找到计数格后,换用40倍物镜观察计数。

    2.3结论

    手绘观察到的微生物的形状,相对大小(见附图)

    计算样品微生物数量

    2.4 建议(如果有)

    实验(2)湖塘水体和沉积物中微生物的革兰氏染色和定性

    1.实验概述

    1.1实验目的及要求

    水体和沉积物是水生生物繁衍生息的基本场所。本实验通过实地调查和实验室观察实验,对湖塘水体和沉积物中微生物观察和定性,初步了解湖塘水体和沉积物中微生物的种类和分类;了解其对水体净化的正面和负面的影响。

    1.2实验原理

    微生物细胞由蛋白质、核酸等两性电解质及其它成分组成,表现出两性电解质的性质。细菌的等电点pI在2-5之间,所以当pH>5时,细菌带负电荷,容易与带正电荷的碱性染料结合而被染色。微生物体内的不同结构和染料的结合能力不同,故可用不同染料对微生物的不同结构分别染色。

    2.实验内容

    2.1实验方案设计

    对池塘水体和沉积物中得细菌进行革兰氏染色和定性,进行微生物形态图的绘制。

    2.1.1实验设备和材料

    (1)实验设备

    显微镜、接种环、载玻片、酒精灯。

    (2) 试剂

    草酸铵结晶紫染液、革兰氏碘液、95%乙醇、番红

    (3) 实验材料

    校园池塘的水体和沉积物

    2.2实验过程(实验步骤、记录、数据、分析 )

    (1)涂片

    取干净的载玻片于实验台上,在正面边角作记号,滴一滴无菌蒸馏水在玻片中央,灼烧接种环,冷却后取样品,与玻片上水滴混匀,在玻片上涂布成一层均匀的薄层,涂布面不宜过大。

    (2)固定

    即干燥,干燥过程最好在空气中晾干。为加速干燥,可在微小火焰上烘干,烘干后在火焰上方快速通过3-4次,使菌体完全固定在载玻片上。不宜长时间高温烘烤,易致急速失水使菌体变形。

    (3)初染

    滴加草酸铵结晶紫染色液染色1-2min,水洗。

    (4)媒染

    滴加革兰氏碘液,染1-2min,水洗。

    (5)脱色

    滴加95%乙醇,洗约45s,接着水洗。或滴加95%乙醇,将玻片摇晃几次即倾倒乙醇,如此重复2-3次后水洗。

    (6)复染

    滴加番红,染2-3min,水洗并干燥。

    (7)镜检

    显微镜观察。

    2.3结论

    观察颜色,并判断是G(紫色)还是G(红色)。手绘观察到的微生物图像,标明颜色。

    2.3.1注意事项:

    (1)涂片所用载玻片要洁净无油渍。

    (2)细菌不宜多,涂片不宜厚,宜薄而均匀。

    (3)染色过程中勿使染色液干涸。用水洗后,应该甩去玻片上残水以免染色液被稀释而影响染色效果。

    (4)革兰氏染色成败的关键是脱色时间是否合适。如脱色过度,G易被误认为G。而脱色时间过短,G易被误认为G。脱色时间长短还受涂片厚薄,脱色时玻片晃动程度影响。

    2.4 建议(如果有)

    2.思考题

    (1)涂片为何要固定?固定时要注意什么?

    答:原因有三

    1、固定细菌,防止冲掉

    2、变形蛋白易染色

    3、杀死细菌,防止感染。实验中固定是用酒精灯烘干水样,应注意控制温度,控制时间,防止将菌体烧成灰烬,无法染色。固定时用载玻片背面靠近火源,而不是直接烘载玻片正面。

    (2) 革兰氏染色如果只做1-4步,不用番红复染,能否分辨革兰氏染色结果?为什么?

    答:能。在酒精脱色后,不被酒精脱色而保留紫色者为革兰氏阳性菌(G+),被酒精脱色为革兰氏阴性菌。最后一步用番红染液复染,是为了让结果更清楚。

    (3)革兰氏染色在微生物学中有何实践意义?

    指导教师评语及成绩:

    成绩:指导教师签名

    批阅日期

    推荐访问:观察者 模式 实验

    • 读/观后感
    • 精美散文
    • 读书笔记
    • 演讲
    • 反思
    • 方案
    • 心得体会