专栏名称: 独饮敌敌畏丶_4109
爱音乐的程序员
目录
相关文章推荐
广东发布  ·  再多“吨”一天水!晴燥画风即将转场 ·  6 天前  
开平广播电视台  ·  雨水上线?开平最新天气预测→ ·  6 天前  
开平广播电视台  ·  广州南站一线直达广州站!“高铁进城”最新进展 ·  6 天前  
开平广播电视台  ·  人山人海!昨晚,开平这里很热闹! ·  1 周前  
51好读  ›  专栏  ›  独饮敌敌畏丶_4109

Java项目实战开发Day08 2020-03-23

独饮敌敌畏丶_4109  · 简书  ·  · 2020-03-23 21:49

正文

内容

1.设计模式介绍
2.单例模式
3.模板设计模式

一.设计模式概念

1.什么是设计模式?

对经常出现的软件设计问题的 成熟解决方案

2.设计模式举例

比如单例模式
工厂模式
代理模式
观察者模式
适配器模式
建造者模式

二.单例模式

详细请看: https://www.jianshu.com/p/6171628603fb

1.简介

单例设计模式:确保某一个类 只有一个实例 ,而且 自行实例化 并向整个系统提供这个实例。

2.作用

对于那些比较耗内存的类,只实例化一次可以大大 提高性能 ,节省内存的开销。

3.实现步骤

私有化 所有的构造方法(目的: 使外部不可以直接创建
②给外部提供一个 静态方法 ,来 获取当前类的一个对象 。(注意:这个方法必须是静态的)
③必须定义一个 静态成员变量 保存当前类唯一的一个对象 (注意:这个方法必须是静态的)
④创建对象(有两种方法)
饿汉式:在定义静态 成员变量 时,直接就创建当前类的一个对象并赋值(类一加载,就有这个对象了)
懒汉式:默认不创建,当调用方法的时候才会创建。 先在静态方法里面判断有没有值,如果没有值,就创建,然后返回。

就类似于

if(a == null){
//创建一个对象
a = new A();
}
return a;

4.深入单例模式(线程中)

左右两个框是 线程
这样可以 避免两个线程都创建了一个实例,使单例模式在多线程中真正得到实现

三.模板设计模式

https://www.jianshu.com/p/3d0c0a302696

1.简介

从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为其子类的模板。从而避免了子类设计的随意性。子类在抽象类的基础上进行拓展、改造

2.注意点:

①抽象类 不能被实例化
抽象方法必须使用abstrac修饰,但是抽象方法能被声明,不能被实现,只能被重写/覆盖。
②抽象类中不一定会有抽象方法,但是 抽象方法必须要出现在抽象类中
③一个非抽象的类继承抽象类, 必须将抽象类中的抽象方法覆盖/实现/重写。
做法是可以将方法复制粘贴到子类中然后把abstract去掉
④子类继承抽象类就是子类实现抽象类里面的抽象方法。一般在抽象类里面把方法的执行顺序都弄好了,顺序在构造方法里面。

3.抽象类与普通类的区别

①抽象类 不能实例化 ,但是普通类可以。
②抽象类里面可以有抽象方法(抽象方法只声明,不实现)。但是普通类里面不可以。