版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
设计模式大题
一、什么是设计模式
设计模式是一套被反复使用、多数人知晓的、经过分类编目的、
代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容
易被他人理解、保证代码可靠性。
二、设计模式的分类
1.创建型模式:用于创建对象,包括单例模式、工厂模式、抽象
工厂模式、建造者模式、原型模式等。
2.结构型模式:用于处理类或对象的组合,包括适配器模式、桥
接模式、组合模式、装饰器模式、外观模式、享元模式、代理模式等。
3.行为型模式:用于描述类或对象之间的交互和职责的分配,包
括策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、
命令模式、备忘录模式、状态模式、访问者模式等。
三、常见的设计模式及示例代码
1.单例模式:璃保一个类只有一个实例,并提供一个全局访问点。
\\\•
java
publicclassSingleton{
privatestaticSingletoninstance;
privateSingleton(){}
publicstaticSingletongetlnstance(){
if(instance==null){
instance=newSingleton();
)
returninstance;
)
)
、、、
2.工厂模式:定义一个创建对象的接口,让子类决定实例化哪一
个类。工厂方法使一个类的实例化延迟到其子类。
、、、•
java
publicinterfaceFactory{
ProductcreateQ;
)
publicclassConcreteFactoryimplementsFactory{
©Override
publicProductcreate(){
returnnewConcreteProduct();
)
)
publicclassProduct{
//产品的具体实现
)
publicclassConcreteProductextendsProduct{
//产品的具体实现
)
\\\
3.观察者模式:定义对象间的一种一对多的依赖关系,当一个对
象的状态发生改变时,所有依赖于它的对象都将得到通知并自动更新。
、、、•
java
importjava.util.ArrayList;
importjava.util.List;
publicclassSubject{
privateList<Observer>observers=newArrayList<>();
publicvoidattach(Observerobserver){
observers.add(observer);
)
publicvoiddetach(Observerobserver){
observers.remove(observer);
)
publicvoidnotifyObservers(){
for(Observerobserver:observers){
observer.updateQ;
)
)
)
publicinterfaceObserver{
voidupdate();
)
publicclassConcreteObserverimplementsObserver{
privateStringname;
publicConcreteObserver(Stringname){
=name;
)
©Override
publicvoidupdateQ{
System.out.println("收到通知:"+name+"更新)
)
)
、、、
四、设计模式的选择原则
1.开闭原则:对扩展开放,对修改关闭。在设计一个模块的时候,
应当使这个模块可以在不被修改的前提下被扩展,即可以通过扩展已
有的代码来实现新的功能,而不需要修改原有的代码。
2.里氏替换原则:所有引用基类的地方必须能透明地使用其子类
的对象。在使用继承时,遵循里氏替换原则,在子类中尽量不要重写
父类的方法。
3.依赖倒置原则:高层模块不应该依赖底层模块,二者都应该依
赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
4.接口隔离原则:客户端不应该依赖它不需要的接口;一个类对
另一个类的依赖应该建立在最小的接口上。
5.迪米特法则:一个对象应该对其他对象保持最少的了解。即一
个类应该尽量少与其他类发生相互作用,使得系统功
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 确认2026年员工年度绩效考核标准函(6篇)
- 跨境电商店铺库存周转率提升方案
- 取消原定合作项目协商商洽函(5篇)
- 沪外教版七年级英语上册Unit1词汇积累卷(含答案)
- 城市建筑规划方案实施成效评估表
- 流程再造提升工作效率提升方案
- 商超中秋节仓储配送调整确认函(7篇)范文
- 社区垃圾清运流程管理手册
- 游戏开发主程序师绩效考评表
- 付款提醒函2026年Q3账期5篇
- 2025年电力行业自主人才评价考评员考试题库
- 工行培训课件业务
- 2025-2026学年上学期小学语文统编版六年级期末必刷常考题之作文
- 2025年10月自考15040习概论试题及答案
- 农产品质量安全检测员实操能力试题及答案
- 消毒供应室清洗流程规范
- 奇妙的七巧板3《用七巧板拼有趣的图形》(课件)-2025-2026学年二年级数学上册苏教版
- 阳极氧化工艺培训课件
- 小学生心理健康测试题及答案
- 《自己培养自己》读书分享
- 2025年电工职业技能鉴定试卷(初级工)实操试题及答案解析
评论
0/150
提交评论