我是靠谱客的博主 甜蜜中心,最近开发中收集的这篇文章主要介绍设计模式-分类:创建型、结构型、行为型;单例模式;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类 单例模式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部