设计模式
懒汉模式
饿汉模式
其他模式
单列设计模式:
保证类在内存中只有一个对象
1.控制类的创建,不让其他类创建本类的对象(Private)
2.在本类中定义一个对象。
3提供公共的访问方式
1.饿汉模式:
开发思路:饿汉模式不管你用不用,上来创建对象,浪费内存空间
public class Stringnas {
private Stringnas() {
}
private static Stringnas s=new Stringnas();
public static Stringnas getStringnas() {
return s;
}
}
public class Demo1 {
public static void main(String[] args) {
Stringnas s=Stringnas.getStringnas();
Stringnas s1=Stringnas.getStringnas();
Stringnas s2=Stringnas.getStringnas();
System.out.println(s1==s2);
}
}
懒汉设计模式
特点:先声明不创建,什么时候用,什么时候就创建
public class Stringloton {
private Stringloton() {};
private static Stringloton s;
public static Stringloton getStringloton() {
if(s==null) {
s=new Stringloton();
}
return s;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Stringloton s1=Stringloton.getStringloton();
Stringloton s2=Stringloton.getStringloton();
System.out.println(s1==s2);
}
}
总结:饿汉模式要好于懒汉模式。因为懒汉模式容易出现创建两次对象的情况发生,如果对象不唯一就不是单列模式。
区别:
1.饿汉模式:是空间换时间
2.懒汉模式:时间换空间,看似不合理。
无名模式:企业常用
public class Stringnas {
private Stringnas() {
}
public static final Stringnas s=new Stringnas();
}
ublic class Demo1 {
public static void main(String[] args) {
// Stringnas.s=null;
Stringnas s1=Stringnas.s;
Stringnas s2=Stringnas.s;
System.out.println(s1==s2);
}
}
工厂模式(静态工厂)
定义一个具体工厂类负责创建一些类的实例。
优点:客户端不需要再负责对象的创建,从而明确了各个类的职责。
缺点:这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同就需要不断地修改工厂类,不利于后期维护。
public class AnimalFactory {
public static Animal CreateAnimal(String name) {
if("Dog".equals(name)) {
return new Dog();
}else if("Cat".equals(name)) {
return new Cat();
}else {
return null;
}
}
}
javaee综合练习
聊天软件;
1.Frame框架(窗口框架)
2.三要素:ip 端口号 UDP/TCP协议
3.基本数据类型、循环、判断、数组、面向对象、流、形成
4.socket/packet
UDP传输
发送send
1.创建码头DatagramSocket随机端口号6666
2.创建集装箱DatagramPacket,指定数组,长度,ip,端口
3,使用码头把集装箱发送出去Datagramsocket发送Datagrampacket
4.关闭码头Datagramsocket
接收Receive
1.创建码头Datagram