博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式
阅读量:4314 次
发布时间:2019-06-06

本文共 1450 字,大约阅读时间需要 4 分钟。

1.单例模式

 只有一个实例

实例自己造

对外所有提供这个实例

懒汗:懒汉比较懒,只有当调用getInstance的时候,才回去初始化这个单例

public static BusinssBase instance; public synchronized static BusinssBase getInstance() {        if (instance == null) {            instance = new BusinssBase();        }        return instance;    }    public BusinssBase() {        this.mInstrumentation = Contacts.getInstance().getmInstrumentation();

 

双重检查锁定:锁前和锁后都添加

public static Singleton getInstance() {          if (singleton == null) {                synchronized (Singleton.class) {                   if (singleton == null) {                      singleton = new Singleton();                  }                }            }            return singleton;       }

 

饿汗:

饿汉式在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以天生是线程安全的。

但是不管使用不使用,都会占用内存

 

public class Singleton1 {      private Singleton1() {}      private static final Singleton1 single = new Singleton1();      //静态工厂方法       public static Singleton1 getInstance() {          return single;      }  }

 

2.工厂模式

每个人都是小作坊,在生产的时候通过new小作坊带参数去生成物品。

后面合并成一个工厂了,统一去实例化工厂并带上参数去生成产品 --简单工厂

后面工厂大了,需要继续抽象,会生成各类型的产品。抽象成:工厂接口,工厂实现,产品接口,产品实现。。--工厂方法

简单工厂:把对象的创建放到一个工厂类中,通过参数来创建不同的对象。
这个缺点是每添一个对象,就需要对简单工厂进行修改(尽管不是删代码,仅仅是添一个switch case,但仍然违背了“不改代码”的原则)
工厂方法:每种产品由一种工厂来创建,一个工厂保存一个new。
4类:工厂接口,工厂实现,产品接口,产品实现
如果新增一个产品,则新增:工厂实现,产品接口,产品实现

 

3.外观模式

Facade模式定义了一个高层接口,所有访问下面子系统或功能的都通过这个类

 

4.代理模式

A,B继承C

A实现C

B继承A并用A的方法实现C,在A方法加上before和after

 

5.观察者模式

 

转载于:https://www.cnblogs.com/season-xie/p/5428728.html

你可能感兴趣的文章
【POJ2976】Dropping tests (01分数规划入门题)
查看>>
通过正则表达式获取url中参数
查看>>
86.运算符重载
查看>>
cxx signal信号捕获
查看>>
《Android开发艺术探索》读书笔记——Cha3.2.3改变布局参数实现View的滑动
查看>>
python闭包与装饰器
查看>>
Acegi 源码解释
查看>>
Activity的几种启动跳转方式
查看>>
LCA最近公共祖先Tarjan(离线)
查看>>
牛客练习赛16 E求值
查看>>
matlab rank
查看>>
Asp.net系列--基础篇(三)
查看>>
css基础
查看>>
如何在tomcat中如何部署java EE项目
查看>>
【Python基础教程第2版】——第二讲:列表和元组
查看>>
小常识
查看>>
使用vscode开发python
查看>>
《java编程思想》读书笔记(一)开篇&第五章(1)
查看>>
swift--调用系统单例实现打电话
查看>>
0038-算一算是一年中的第几天
查看>>