设计模式 design pattern
(1)装饰
(2)缺省适配
(3)单例 1.私有静态属性(唯一的对象) 2.静态方法(获得单例对象) 3.私有构造方法
(4)工厂 利用工厂对象 负责对象的创建
各司其职 开闭原则 (修改关闭 扩展开放)
数据从哪来? 固化程序中,从文件中来,从服务器, 数据库
数据如何处理 不处理 倒序 统一转为大写 翻译
数据如何展现 UI 控制台输出 日志文件 打印机输出
(5)享元模式(flyweight) 如果很多很小的东西,它们有很多相同的东西,将相同的东西变成一个对象、内在状态,不同的属性变成方法的参数,外在参数。
应用:26个字母 26个对象 26个内在状态 只是将(int x,int y)位置作为参数
文件目录图标 图标作为内在参数 将图标的名字和位置作为外在参数
String s1 = new String("a");
String s2 = new String("a");
String s3 = "c";
String s4 = "c";
Integer i1 = 3;
Integer i2 = 3;
Integer i3 = new Integer(3);
Integer i4 = new Integer(3);
Integer i5 = Integer.valueOf(3);
Integer i6 = Integer.valueOf(3);
System.out.println(s1==s2);//字符串会有串池的用法 但通过new出来的不共用串池
System.out.println(s3==s4);//不是new 的情况会产生享元模式
System.out.println(i1==i2);//装箱的方式会产生享元模式的情况
System.out.println(i3==i4);//Integer通过new出来的也不产生享元模式的情况
System.out.println(i5==i6);//valueOf也会产生享元模式的情况
false
true
true
false
true
new关键字的出现一定会出现新的对象,装箱和拆箱会发生享元的情况
(1)装饰
(2)缺省适配
(3)单例 1.私有静态属性(唯一的对象) 2.静态方法(获得单例对象) 3.私有构造方法
(4)工厂 利用工厂对象 负责对象的创建
各司其职 开闭原则 (修改关闭 扩展开放)
数据从哪来? 固化程序中,从文件中来,从服务器, 数据库
数据如何处理 不处理 倒序 统一转为大写 翻译
数据如何展现 UI 控制台输出 日志文件 打印机输出
(5)享元模式(flyweight) 如果很多很小的东西,它们有很多相同的东西,将相同的东西变成一个对象、内在状态,不同的属性变成方法的参数,外在参数。
应用:26个字母 26个对象 26个内在状态 只是将(int x,int y)位置作为参数
文件目录图标 图标作为内在参数 将图标的名字和位置作为外在参数
String s1 = new String("a");
String s2 = new String("a");
String s3 = "c";
String s4 = "c";
Integer i1 = 3;
Integer i2 = 3;
Integer i3 = new Integer(3);
Integer i4 = new Integer(3);
Integer i5 = Integer.valueOf(3);
Integer i6 = Integer.valueOf(3);
System.out.println(s1==s2);//字符串会有串池的用法 但通过new出来的不共用串池
System.out.println(s3==s4);//不是new 的情况会产生享元模式
System.out.println(i1==i2);//装箱的方式会产生享元模式的情况
System.out.println(i3==i4);//Integer通过new出来的也不产生享元模式的情况
System.out.println(i5==i6);//valueOf也会产生享元模式的情况
false
true
true
false
true
new关键字的出现一定会出现新的对象,装箱和拆箱会发生享元的情况