当前位置: 首页 > news >正文

【设计模式】--重点知识点总结

题1

1、工厂和产品之间是依赖关系

2、工厂方法模式:工厂方法不能为静态方法。如果是静态方法,子类无法重写行为。

简单工厂可以用静态方法

3、采用设计模式,以保证成功的设计和体系结构

4、建造者模式:(1)用户只指定复杂对象的类型和内容即可(2)各个具体的建造者之间相互独立

5、桥接模式:抽象和实现相分离;动态组合多于一个的抽象化角色和实现化角色

6、可以以“_”开头,但不能有空格!

题2

  1. 命令模式:发出命令的责任和执行命令的责任不在同一类里
  2. 享元对象能做到共享的关键:区分内部状态和外部状态 P231
  3. 中介者:多对多;观察者:一对多

观察者:抽象目标指向(关联)抽象观察者 P23

  1. 毕业生通过职业介绍所找工厂:代理模式

题3

  1. 抽象工厂模式:提供一个创建一系列相关/相互依赖对象的接口,而无需指定他们具体的类
  2. 适配器模式:类适配器模式一次最多只能适配一个适配者类

3、外观模式:为子系统的一组接口提供统一的界面,例“电源总开关”

4、接口中含有 常量  公有抽象方法

5、面向对象编程三大特性:封装、继承、多态

6、建造者模式返回一个组装好的完整产品,抽象工厂模式返回一系列相关的产品

题5

  1. 备忘录模式支持撤销(一个依赖、一个关联,都指向备忘录),利用负责人的set和get;命令模式也支持撤销 P285
  2. 代理模式(协调调用者和被调用者)的几种类型:P253(VPN)。缺点:请求的处理速度会变慢
  3. 命令模式:将请求封装为对象,从而使你可以使用不同的请求对客户进行参数化
  4. 依赖倒转原则的定义 P34
  5. 接口隔离原则的定义 P39
  1. 客户端不应该依赖那些他不需要的接口
  2. 一旦一个接口太大,则需要将它分割成一些更细小的接口,使用该接口的客户端仅需知道与之相关的方法即可
  1. 迭代器模式:访问一个聚合对象,而无需暴露其内部表示
  2. 实现视图--逻辑元素;环境视图--物理元素
  3. 职责链模式:可以动态决定由一组对象中的某个对象处理请求(请求沿着链传递,由某个对象来处理,这个对象是动态决定的。)

动态指定处理一个请求的对象集合(√),并高效率地处理一个请求。

(如果链条很长或处理者顺序不合理,可能导致性能下降;所以它不一定高效。)

题6

1、装饰模式:可以动态地给一个对象增加功能,这些功能也可以动态地撤销

2、组合模式:表示的是一种“部分-整体”的关系

3、享元模式(轻量级模式):要求能够共享的对象必须是细粒度对象,例“数据库连接池”

4、设计模式的分类:(1)范围:类模式和对象模式(2)目的:创建型模式、结构型模式和行为型模式

5、构造函数没有返回类型

题7

1、月光宝盒:备忘录模式

2、A:65;a:97

3、简单工厂模式:会增加系统中类的个数

4、命令模式支持“在不同的时间指定请求、将请求排队和执行请求”

5、访问者模式:不改变聚合类的前提下定义作用于聚合中元素的新操作

6、邮件的转发功能:原型模式!!!

题8

1、访问者模式:作用于某对象结构中的各元素的操作

2、外观模式又称为门面模式,它是一种对象结构型模式

3、设计模式包含模式名称、问题、解决方案、效果

4、高层模块依赖抽象

5、抽象工厂模式增加新产品族方便,但增加新等级结构需修改“工厂”

6、桥接模式:继承->关联,降低耦合度

7、装饰模式支持动态撤销

8、享元模式:五子棋

题9

1、型模式不满足“开闭原则”,需要为每一个类配备一个克隆方法

2、开闭原则的关键:抽象化

3、群聊(主题)消息推送给所有成员:观察者模式;

群聊:中介者模式

4、工厂子类可以隐藏父类的静态方法

5、当系统中有多余一个产品类时可以考虑使用抽象工厂模式

编程题:

1.switch (变量) 记得带括号!!!

2.List<User> users=new ArrayList<User> ();

HashMap h=new HashMap();

http://www.dtcms.com/a/362198.html

相关文章:

  • C++ Bellman-Ford算法
  • Linux并发与竞争实验
  • 软件使用教程(四):Jupyter Notebook 终极使用指南
  • 数据分析编程第八步:文本处理
  • 设计模式-状态模式 Java
  • 华清远见25072班I/O学习day2
  • PostgreSQL备份指南:逻辑与物理备份详解
  • 椭圆曲线群运算与困难问题
  • 【数据分享】多份土地利用矢量shp数据分享-澳门
  • AI产品经理面试宝典第81天:RAG系统架构演进与面试核心要点解析
  • Qt中的信号与槽机制的主要优点
  • 自动化测试时,chrome浏览器启动后闪退的问题
  • 【趣味阅读】Python 文件头的秘密:从编码声明到 Shebang
  • VisionProC#联合编程相机实战开发
  • 【云存储桶安全】怎么满足业务需求,又最大程度上满足信息安全要求呢?
  • 1792. 最大平均通过率
  • 学习:uniapp全栈微信小程序vue3后台-暂时停更
  • 本地没有公网ip?用cloudflare部署内网穿透服务器,随时随地用自定义域名访问自己应用端口资源
  • 液态神经网络:智能制造的新引擎
  • 【跨境电商】上中下游解释,以宠物行业为例
  • 洛谷 c++ P1177 【模板】排序 题解
  • AutoSar RTE介绍
  • 特征增强方法【特征构建】
  • MVC、三层架构
  • RT-DETR网络结构
  • 并发之线程
  • 【思考】WSL是什么
  • 一、SVN与svnbucket.com常见问题解答
  • 从组分到涌现:系统科学视域下结构、功能与层级的辨析及在人工智能中的应用
  • 设备管理软件正在成为制造业企业的战略重点_HawkEye智能运维平台_璞华大数据