ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

常见的设计模式

2021-04-10 14:05:03  阅读:171  来源: 互联网

标签:初始化 菜单 静态 常见 模式 new 设计模式 subject


https://www.runoob.com/design-pattern/design-pattern-tutorial.html

设计模式:
1.简单工厂模式:(静态方法) 2048小游戏,计算器

2.装饰者模式:Thread thread=new Thread(()->System.out.println());

3.代理模式: 把real类当作proxy类的属性,进一步封装,两个类都初始化,实际调用real类的方法。

4.工厂方法模式:(非静态方法) 2048小游戏,计算器

5.单例模式:
静态初始化: A类中new一个A对象修饰为静态(然后一直使用这个静态对象),空构造方法标记为私有,让他无法初始化。
①第一次被引用时,实例化,懒汉式单例
②直接用静态标记,加载的时候就实例化

线程安全问题:
①通过静态标记解决
②通过加锁解决

6.建造者模式: 从一个菜单开始进行展开,和展开后的向上抽象。
菜单->何种菜单,假设A菜单->菜单中有 牛肉和大白菜->肉类 青菜类->继续抽象到 抽象类或接口层。。

7.观察者模式:实体类配置关系的过程(多个观察者对应一个主体)
Subject subject = new Subject();

  new HexaObserver(subject);
  new OctalObserver(subject);
  new BinaryObserver(subject);

//在初始化Observer的同时,把Observer attach到subject中,双向注册
public HexaObserver(Subject subject){
    this.subject = subject;
   this.subject.attach(this);
 }

在subject调用了changestatus时,遍历所有Observers,调用其update方法

标签:初始化,菜单,静态,常见,模式,new,设计模式,subject
来源: https://blog.csdn.net/BOWWOB/article/details/115572918

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有