JAVA学习笔记(五十七)- 常用设计模式
来源:互联网 发布:淘宝网天猫邻家美妞儿 编辑:程序博客网 时间:2024/05/18 20:31
单例模式
/* * 单例模式 * 应用场合:有些对象只需要一个,此时可以使用单例模式 * 作用:保证整个应用中某个实例有且只有一个 * 类型:饿汉模式、懒汉模式 */public class Test04 { // 1.将构造方式私有化,不允许外界直接创建对象 private Test04() { } // 2.创建类的唯一对象,使用private static修饰 private static Test04 instance=new Test04(); // 3.提供一个用于获取唯一实例的方法,使用public static修饰 public static Test04 getInstance(){ return instance; }}
懒汉模式
/* * 懒汉模式 * 区别: * 1.饿汉模式的特点,在类加载时会创建类的唯一实例,导致类加载比较慢,但运行时获取对象的速度较快,线程安全 * 2.懒汉模式的特点,在第一次获取实例时会创建类的唯一实例,导致第一次获取时较慢,但类加载比较快,线程不安全 * */public class Test05 { // 1.将构造方法私有化 private Test05() { } // 2.声明类的唯一实例,但并未实例化 private static Test05 instance; // 3.提供一个用于获取唯一实例的静态方法 public static Test05 getInstance() { if(instance==null){ instance=new Test05();//判断如果为空,则创建一个唯一的实例 } return instance; }}
工厂模式
/* * 工厂模式Factory Method * 简单工厂模式 * 定义:建立一个工厂类,对实现了同一个接口的多个类进行实例化对象的操作 */public class Test06 { public static void main(String[] args) { Factory factory=new Factory(); Moveable m1=factory.product("plane"); Moveable m2=factory.product("bus"); Moveable m3=factory.product("bike"); m2.move(); }}interface Moveable { public void move();}class Plane implements Moveable { @Override public void move() { System.out.println("马航死亡航班。。。"); }}class Bus implements Moveable { @Override public void move() { System.out.println("昌河校车。。。"); }}class Bike implements Moveable { @Override public void move() { System.out.println("捷安特自行车"); }}/* * 生产产品的工厂类 */class Factory { public Moveable product(String need) { if (need.equals("plane")) { return new Plane(); } else if (need.equals("bus")) { return new Bus(); } else { return new Bike(); } }}
0 0
- JAVA学习笔记(五十七)- 常用设计模式
- Java设计模式 -- 学习笔记
- java设计模式学习笔记-工厂模式
- java设计模式学习笔记-构建模式
- java设计模式学习笔记-原型模式
- java设计模式学习笔记-适配器模式
- java设计模式-工厂模式学习笔记
- java设计模式学习笔记--外观模式
- 学习笔记:Java设计模式-命令模式
- 学习笔记:java设计模式--命令模式
- java设计模式学习笔记--观察者模式
- java设计模式学习笔记--适配器模式
- java设计模式学习笔记--代理模式
- java 设计模式学习笔记十二 command命令设计模式
- java 设计模式学习笔记十五 strategy 策略设计模式
- java设计模式学习笔记(一)-- 简述设计模式
- 设计模式学习笔记(Java篇)之设计模式原则
- 常用设计模式学习
- 在控件中显示JPG图片
- 出现NSScanner: nil string argument libc++abi.dylib: terminate_handler unexpectedly threw an exception
- JSP原理(二)
- 欢迎使用CSDN-markdown编辑器
- avl树实现
- JAVA学习笔记(五十七)- 常用设计模式
- Hama框架学习(一) 从源码角度分析job的提交和运行过程
- 买水果
- How to Re-Run the OS X Setup Assistant
- Java_socket程序学习06-彩票销售-第一阶段+3d+lot销售
- ListView混搭ProgressBar最佳更新方式
- 蓝桥杯 花朵数
- [LeetCode]Majority Element
- 欢迎使用CSDN-markdown编辑器