线程-设计模式

news/2024/10/19 11:35:52
    设计模式:创建型模式简单工厂模式工厂方法模式单例模式行为型模式结构型模式

简单工厂模式

点击查看代码

public abstract class Animal {public abstract void eat();public abstract void sleep();
}public class Cat extends Animal{@Overridepublic void eat() {System.out.println("猫吃鱼");}@Overridepublic void sleep() {System.out.println("猫蜷着睡");}
}public class Dog extends Animal {@Overridepublic void eat() {System.out.println("狗吃肉");}@Overridepublic void sleep() {System.out.println("狗侧着睡");}
}public class AnimalFactory {private AnimalFactory() {}public static Animal createAnimal(String name){if("dog".equals(name)){return new Dog();}else if("cat".equals(name)){return new Cat();}else {System.out.println("没有该动物");return null;}}
}public class FactoryDemo1 {public static void main(String[] args) {//养一只狗Animal d1 = AnimalFactory.createAnimal("dog");//养一只猫Animal c1 = AnimalFactory.createAnimal("cat");d1.eat();d1.sleep();}
}

工厂方法模式

点击查看代码
public abstract class Animal {public abstract void eat();public abstract void sleep();
}public class Cat extends Animal{@Overridepublic void eat() {System.out.println("猫吃鱼");}@Overridepublic void sleep() {System.out.println("猫蜷着睡");}
}public class Dog extends Animal {@Overridepublic void eat() {System.out.println("狗吃肉");}@Overridepublic void sleep() {System.out.println("狗侧着睡");}
}public abstract class AnimalFactory {public abstract Animal createAnimal();
}public class CatFactory extends AnimalFactory{@Overridepublic Animal createAnimal() {return new Cat();}
}public class DogFactory extends AnimalFactory{@Overridepublic Animal createAnimal() {return new Dog();}
}public class FactoryDemo1 {public static void main(String[] args) {DogFactory dogFactory = new DogFactory();CatFactory catFactory = new CatFactory();//        //养一只狗
//        Animal d1 = AnimalFactory.createAnimal("dog");Animal d1 = dogFactory.createAnimal();Animal d2 = dogFactory.createAnimal();//        //养一只猫
//        Animal c1 = AnimalFactory.createAnimal("cat");Animal c1 = catFactory.createAnimal();Animal c2 = catFactory.createAnimal();}
}
    单例模式:在整个java程序运行期间,内存中某一个对象有且仅只能有一个。笔试1. 饿汉式 工作开发中2. 懒汉式 面试的时候说,可能会涉及线程安全的问题。

饿汉式 不调用也有对象

点击查看代码

public class Student1 {private static Student1 student1 = new Student1();private Student1(){}public static Student1 getStudent1(){return student1;}
}

懒汉式 不调用student就一直是null只要调用了就返回student

点击查看代码
public class Student2 {private static Student2 student2;private Student2(){}public synchronized static Student2 getStudent2(){if(student2==null){// t1 , t2, t3student2 = new Student2();}return student2;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/73387.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

10.18 J 组模拟赛*2

上午 “J”组模拟赛 T1:一维围棋 题面 赛时:100 很简单的一道入门题,注意特判int n;char a[105];void init(){cin >> n;for (int i = 1; i <= n; i++)cin >> a[i];int mx = 0;for (int i = 1; i <= n; i++){if (a[i] == .){int lb = 0, rb = 0;for (int j …

AI人员打闹监测识别系统

AI人员打闹监测识别系统通过在校园、工厂和监狱场景部署高清摄像设备,AI人员打闹监测识别系统采集相关视频图像,并通过人工智能视觉算法对图像进行分析和识别。AI人员打闹监测识别系统能够准确判断出是否有人员进行打闹行为,包括学生打闹和工厂或监狱场景中的人员打架斗殴等…

强化学习的数学原理-01基本概念

state:\(The \quad status \quad of \quad agent \quad with \quad respect \quad to \quad the \quad environment\) (agent 相对于环境的状态) 对于下面的网格地图来说:\(state\)就相当于$ location $,用 \(s_1、s_2、...、s_9\)来表示state space:\(The \quad set…

煤矿监管电子封条

煤矿监管电子封条系统通过视频监控和图像分析技术,煤矿监管电子封条能够实时监测矿井各个关键位置的情况。当有人员进出或人数发生变化时,煤矿监管电子封条能够自动识别,并记录下相关信息。同时,煤矿监管电子封条还能够监测设备的开停情况,及时发现异常和故障,以便及时处…

keil 快捷键设置,开发加速的小技巧(个人设置)

点击扳手,选择shortcut key进入快捷键设置页面跳到上一个光标的位置跳到下一个光标的位置跳转到定义(没办法实现组合鼠标按键,F12又太远,不过和QQ的截图热键冲突,需要修改QQ的快捷键,各有取舍吧)跳转到声明

每隔一段时间后第一次请求耗时特别长

同一个接口连续请求耗时都是毫秒级别的,当一段时间不请求后会变成秒级别,通过日志跟踪发现业务出处理的时间是毫秒级别的,怀疑是过滤器或者是容器的问题,通过IDEA 远程debug 发现经过一段时间不使用再次请求接口,会寻找 com.mysql.jdbc.MySQLConnection类,猜测是tomcat 丢…

linux上编译运行c程序

创建test文件,进入该目录后创建hello.c文件使用vim hello.c命令编辑hello.c文件编写完成后保存该文件,使用gcc进行编译并生成可执行程序在终端中执行输入./hello执行相关代码

效率工具类软件分类解析 | To teacher

写给我的同仁的推荐信,万一你需要连你自己也说不清楚的功能软件,你不妨看看这个软件导图,说不定能节省你好多的时间 .前情概要 在编制博客过程中,自己也积累了一些常用的软件,由于主要工作内容集中在前端,所以办公软件使用的不是很多,零零散散,直到看到一位大牛分享在 …