发表于: 2018-02-12 23:12:13

1 615


今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin) 

###25.11_设计模式(简单工厂模式概述和使用)(了解)
A:简单工厂模式概述
    * 又叫静态工厂方法模式,它定义一个具体的工厂类负责创建一些类的实例
B:优点
    * 客户端不需要在负责对象的创建,从而明确了各个类的职责
C:缺点
    * 这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同,就需要不断的修改工厂类,不利于后期的维护
D:案例演示
    * 动物抽象类:public abstract Animal { public abstract void eat(); }
    * 具体狗类:public class Dog extends Animal {}
    * 具体猫类:public class Cat extends Animal {}
    * 开始,在测试类中每个具体的内容自己创建对象,但是,创建对象的工作如果比较麻烦,就需要有人专门做这个事情,所以就知道了一个专门的类来创建对象。

        public class AnimalFactory {
            private AnimalFactory(){}
        
            //public static Dog createDog() {return new Dog();}
            //public static Cat createCat() {return new Cat();}
        
            //改进
            public static Animal createAnimal(String animalName) {
                if(“dog”.equals(animalName)) {}
                else if(“cat”.equals(animale)) {
        
                }else {
                    return null;
                }
            }
        } 
###25.12_设计模式(工厂方法模式的概述和使用)(了解)
A:工厂方法模式概述
    * 工厂方法模式中抽象工厂类负责定义创建对象的接口,具体对象的创建工作由继承抽象工厂的具体类实现。
B:优点
    * 客户端不需要在负责对象的创建,从而明确了各个类的职责,如果有新的对象增加,只需要增加一个具体的类和具体的工厂类即可,不影响已有的代码,后期维护容易,增强了系统的扩展性
C:缺点
    * 需要额外的编写代码,增加了工作量
D:案例演示

        动物抽象类:public abstract Animal { public abstract void eat(); }
        工厂接口:public interface Factory {public abstract Animal createAnimal();}
        具体狗类:public class Dog extends Animal {}
        具体猫类:public class Cat extends Animal {}
        开始,在测试类中每个具体的内容自己创建对象,但是,创建对象的工作如果比较麻烦,就需要有人专门做这个事情,所以就知道了一个专门的类来创建对象。发现每次修改代码太麻烦,用工厂方法改进,针对每一个具体的实现提供一个具体工厂。
        狗工厂:public class DogFactory implements Factory {
            public Animal createAnimal() {…}
                }
        猫工厂:public class CatFactory implements Factory {
            public Animal createAnimal() {…}
                }  

###25.13_GUI(如何创建一个窗口并显示)
Graphical User Interface(图形用户接口)。

        Frame  f = new Frame(“my window”);
        f.setLayout(new FlowLayout());//设置布局管理器
        f.setSize(500,400);//设置窗体大小
        f.setLocation(300,200);//设置窗体出现在屏幕的位置
        f.setIconImage(Toolkit.getDefaultToolkit().createImage("qq.png"));
        f.setVisible(true);

###25.14_GUI(布局管理器)
FlowLayout(流式布局管理器)
    * 从左到右的顺序排列。
    * Panel默认的布局管理器。
BorderLayout(边界布局管理器)
    * 东,南,西,北,中
    * Frame默认的布局管理器。
GridLayout(网格布局管理器)
    * 规则的矩阵
CardLayout(卡片布局管理器)
    * 选项卡
GridBagLayout(网格包布局管理器)
    * 非规则的矩阵
###25.15_GUI(窗体监听)
    Frame f = new Frame("我的窗体");
    //事件源是窗体,把监听器注册到事件源上
    //事件对象传递给监听器
    f.addWindowListener(new WindowAdapter() {
              public void windowClosing(WindowEvent e) {
                         //退出虚拟机,关闭窗口
            System.exit(0);
        }
    });

###25.16_GUI(鼠标监听)
###25.17_GUI(键盘监听和键盘事件)
###25.18_GUI(动作监听)
###25.19_设计模式(适配器设计模式)(掌握)
a.什么是适配器
    * 在使用监听器的时候, 需要定义一个类事件监听器接口.
    * 通常接口中有多个方法, 而程序中不一定所有的都用到, 但又必须重写, 这很繁琐.
    * 适配器简化了这些操作, 我们定义监听器时只要继承适配器, 然后重写需要的方法即可.
b.适配器原理
    * 适配器就是一个类, 实现了监听器接口, 所有抽象方法都重写了, 但是方法全是空的.
    * 适配器类需要定义成抽象的,因为创建该类对象,调用空方法是没有意义的
    * 目的就是为了简化程序员的操作, 定义监听器时继承适配器, 只重写需要的方法就可以了.
###25.20_GUI(需要知道的) 
事件处理
    * 事件: 用户的一个操作
    * 事件源: 被操作的组件
    * 监听器: 一个自定义类的对象, 实现了监听器接口, 包含事件处理方法,把监听器添加在事件源上, 当事件发生的时候虚拟机就会自动调用监听器中的事件处理方法

明天计划的事情:(一定要写非常细致的内容) 

再看一下反射.
遇到的问题:(遇到什么困难,怎么解决的) 
收获:(通过今天的学习,学到了什么知识)



返回列表 返回列表
评论

    分享到