我是靠谱客的博主 甜蜜中心,最近开发中收集的这篇文章主要介绍设计模式-分类:创建型、结构型、行为型;单例模式;Runtime类1 概述2 分类3,单例模式4 Runtime类 单例模式,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
文章目录
- 1 概述
- 2 分类
- 3,单例模式
- 4 Runtime类 单例模式
1 概述
- 称设计模式Design pattern。
是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。 - 设计模式不是技术,而是一种编程思想。
- 设计模式和语言无关的。学习设计模式主要就是为了让大家建立起面向对象的思想。
尽可能的面向接口编程,降低程序的耦合度,提高内聚性。让设计出来的代码可以重复使用。
2 分类
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
3,单例模式
-
单例模式就是要保证这个类将来只能有一个对象。
这个对象就不让外部去创建,必须在这个类中自己创建出来。然会返回。 -
优点:
将来只有一个对象,节约内存。对于一些需要不断创建和销毁的对象来说单例可以提高性能。 -
缺点:
没有抽象层,所以很难扩展。
职责很重。 -
单例分类:
饿汉式:开发用 不会出问题 类一加载就创建
懒汉式:面试用 可能会出问题 用的时候才去创建
package com.momo.domain;
/*
* 饿汉式单例
*
私有构造
*
在成员位置自己造对象
*
提供公有的方法返回该对象
* */
public class Sun {
//私有构造
private Sun(){}
//私有为了不让外界直接访问
//静态只能访问静态
private static Sun s = new Sun();
public static Sun getSun(){
return s;
}
}
package com.momo.demo;
import com.momo.domain.Sun;
/*
* 饿汉测试
* */
public class Demo8 {
public static void main(String[] args) {
Sun s1 = Sun.getSun();
Sun s2 = Sun.getSun();
System.out.println(s1);
System.out.println(s2);
System.out.println(s1==s2);
}
}
package com.momo.domain;
/*
* 懒汉式
*
私有构造
*
在方法中创建对象
*
然后返回
* */
public class Moon {
private Moon(){}
private static Moon m = null;
public synchronized static Moon getMoon(){
if(m==null){
//t1
t2 ..
m = new Moon();
}
return m;
}
}
package com.momo.demo;
import com.momo.domain.Moon;
import com.momo.domain.Sun;
/*
* 懒汉测试
* */
public class Demo9 {
public static void main(String[] args) {
Moon m1 = Moon.getMoon();
Moon m2 = Moon.getMoon();
System.out.println(m1);
System.out.println(m2);
System.out.println(m1==m2);
}
}
4 Runtime类 单例模式
每个Java应用程序都有一个Runtime类的Runtime ,允许应用程序与运行应用程序的环境进行接口。
当前运行时可以从getRuntime方法获得。
应用程序无法创建自己的此类的实例。
package com.momo.demo;
import java.io.IOException;
public class Demo10 {
public static void main(String[] args) throws IOException {
Runtime r1 = Runtime.getRuntime();
Runtime r2 = Runtime.getRuntime();
System.out.println(r1==r2);
//Process exec(String command)
//在单独的进程中执行指定的字符串命令。
// r1.exec("shutdown -s -t 100000");
// r1.exec("shutdown -a");
}
}
最后
以上就是甜蜜中心为你收集整理的设计模式-分类:创建型、结构型、行为型;单例模式;Runtime类1 概述2 分类3,单例模式4 Runtime类 单例模式的全部内容,希望文章能够帮你解决设计模式-分类:创建型、结构型、行为型;单例模式;Runtime类1 概述2 分类3,单例模式4 Runtime类 单例模式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复