Java 设计模式深入浅出: 理解和应用常见设计范例 (java设计模式)

时间:2024-12-30 - 浏览:
java设计

设计模式是软件开发中可重复使用的解决方案,它们getShape(String shapeType) {if (shapeType.equals("CIRCLE")) {return new Circle();} else if (shapeType.equals("SQUARE")) {return new Square();} else if (shapeType.equals("RECTANGLE")) {return new Rectangle();}return null;} }// 创建不同的形状对象 Shape circle = ShapeFactory.getShape("CIRCLE"); Shape square = ShapeFactory.getShape("SQUARE"); Shape rectangle = ShapeFactory.getShape("RECTANGLE");

单例模式

单例模式确保一个类只有一个实例,并提供一个全局访问点。它通常用于创建全局对象,如数据库连接或缓存。单例模式的优点是它简化了对象的实例化,并强制应用程序只能有一个该对象的实例。


// 创建一个单例类
class Singleton {private static Singleton instance = null;private Singleton() {}public static Singleton getInstance() {if (instance == null) {instance = new Singleton();}return instance;}
}// 获取单例对象
Singleton singleton = Singleton.getInstance();

代理模式

代理模式为另一个对象提供了一个代理或占位符。它控制对目标对象的访问,并可以提供附加功能,如安全性、并发控制或延迟加载。代理模式的优点是它可以隐藏目标对象的复杂性,并允许对目标对象进行更细粒度的控制。


// 创建一个代理类
class Proxy implements Subject {private Subject realSubject;public Proxy(Subject realSubject) {this.realSubject = realSubject;}@Overridepublic void request() {// 在调用目标对象之前或之后执行一些附加操作realSubject.request();}
}// 创建一个目标对象
class RealSubject implements Subject {@Overridepublic void request() {// 执行实际的操作}
}// 使用代理对象
Subject subject = new Proxy(new RealSubject());
subject.request();

适配器模式

适配器模式将一个类的接口转换成另一个类所期望的接口。它使原本不兼容的类可以一起工作。适配器模式的优点是它可以消除不兼容性问题,并使代码更容易重用。


// 创建一个适配器类
class Adapter implements Target {private Adaptee adaptee;public Adapter(Adaptee adaptee) {this.adaptee = adaptee;}@Overridepublic void request() {adaptee.specificRequest();}
}// 创建一个需要适配的对象
class Adaptee {public void specificRequest() {// 执行特定操作}
}// 使用适配器对象
Target target = new Adapter(new Adaptee());
target.request();

策略模式

策略模式定义了一组算法,并将它们封装为独立的对象。它允许客户在运行时选择和修改算法。策略模式的优点是它提供了一种灵活的方式来改变应用程序的行为,而无需修改客户端代码。


// 创建一个策略接口
interface Strategy {public int dOOPeration(int num1, int num2);
}// 创建具体的策略类
class AdditionStrategyimplements Strategy {@Overridepublic int doOperation(int num1, int num2) {return num1 + num2;}
}class SubtractionStrategy implements Strategy {@Overridepublic int doOperation(int num1, int num2) {return num1 - num2;}
}// 创建一个策略上下文类
class Context {private Strategy strategy;public Context(Strategy strategy) {this.strategy = strategy;}public int executeStrategy(int num1, int num2) {return strategy.doOperation(num1, num2);}
}// 使用不同的策略对象
Context context = new Context(new AdditionStrategy());
int result = context.executeStrategy(10, 5);context = new Context(new SubtractionStrategy());
result = context.executeStrategy(10, 5);

观察者模式

观察者模式定义了一对一的多对多依赖关系,其中一个对象(称为主题)保持一个依赖对象的列表(称为观察者)。当主题的状态发生变化时,它会通知所有观察者。观察者模式的优点是它允许对象松散耦合,并允许它们在不了解彼此的情况下进行通信。


// 创建一个主题接口
interface Subject {public void registerObserver(Observer observer);public void removeObserver(Observer observer);public void notifyObservers();
}// 创建一个具体的主题类
class ConcreteSubject implements Subject {private List observers = new ArrayList<>();@Overridepublic void registerObserver(Observer observer) {observers.add(observer);}@Overridepublic void removeObserver(Observer observer) {observers.remove(observer);}@Overridepublic void notifyObservers() {for (Observer observer : observers) {observer.update();}}
}// 创建一个观察者接口
interface Observer {public void update();
}// 创建一个具体的观察者类
class ConcreteObserver implements Observer {@Overridepublic void update() {// 根据主题的更新执行一些操作}
}// 使用观察者模式
Subject subject = new ConcreteSubject();
Observer observer = new ConcreteObserver();
subject.registerObserver(observer);subject.notifyObservers();

结论

设计模式是 Java 开发人员的宝贵工具,它们提供了可重复使用的解决方案来解决常见的编程问题。通过理解和应用这些模式,开发人员可以创建更灵活、更可重用和更易于维护的代码。拥抱设计模式可以显著提高软件质量并促进代码的可扩展性。

相关标签: java设计模式设计模式深入浅出Java理解和应用常见设计范例

本文地址:https://www.qianwe.net/article/07effe185850d4666789.html

发表评论
相关内容相关内容
唯美图片宝藏库:探索令人惊叹的视觉盛宴 (唯美图片宝藏图片大全)

body,background,color,f5f5f5,font,family,Arial,sans,serif,.container,width,80%,margin,0auto,h1,text,align,center,margin,top,50px,.gallery,display,grid,grid,template,...。

解锁天津市场新机会:定制化网站推广解决方案 (天津的市场)

天津,作为中国北方重要的经济中心和沿海开放城市,拥有巨大的市场潜力,对于希望拓展天津业务的企业而言,网站推广是必不可少的,定制化网站推广解决方案可以帮助企业有效触达目标受众,提升品牌知名度和转化率,天津市场概况人口规模,1500万人均GDP,10万元主要产业,制造业、金融业、旅游业...。

全面指南:打造令人难忘的品牌推广策略 (全面性指的是)

全面性指的是,本指南旨在提供打造令人难忘品牌推广策略所需的所有信息,它涵盖了从制定明确的品牌定位到执行成功的营销活动的方方面面,制定品牌定位品牌定位是品牌推广策略的基础,它定义了你的品牌在目标受众心中应占据的位置,制定品牌定位时,需要考虑以下因素,你的品牌价值观是什么,你的目标受众是谁,你的竞争对手是谁,你的品牌在市场中的独特卖点是什...。

建立网络影响力:全面的网络推广策划方案 (建立网络影响力的方法)

body,font,family,Arial,sans,serif,font,size,16px,line,height,1.6em,h1,font,size,24px,margin,bottom,16px,h2,font,size,20px,margin,bottom,12px,h3,font,size,18px,margin...。

引爆搜索流量:利用百度关键词优化工具,让你的网站在搜索结果中脱颖而出 (引爆流量33招)

引爆搜索流量,利用百度关键词优化工具,让你的网站在搜索结果中监控网站排名和流量,寻求专业搜索引擎优化人员的帮助,结论利用百度关键词优化工具和全面的关键词优化策略,你可以显著提升网站在搜索引擎结果页面中的排名,吸引更多流量,并推动业务增长,通过持续的内容创作、高质量的反向链接构建、技术优化和其他最佳实践,你可以让你的网站成为百度用户搜索...。

HTML 超级指南:掌握网页设计的基石,从初学者到专业开发者 (HTML超级简易计算器代码)

HTML,超文本标记语言,是网页设计的基石,它为网页提供结构和含义,使其可以在Web浏览器中呈现,本指南将带你从HTML初学者提升为专业开发者,涵盖从基本概念到高级功能的所有内容,HTML结构HTML文档由以下元素组成,<,html>,定义HTML文档的根元素,<,head>,包含有关网页的元数据,例如标题和链接,...。

如何优化网站:分步指南,实现网站的巨大成功 (如何优化网站推广)

引言在当今竞争激烈的数字世界中,拥有一个优化的网站对于企业成功至关重要,一个精心优化的网站可以帮助你吸引更多流量、提高转化率,并建立更强大的品牌声誉,本指南将为你提供一个分步指南,帮助你优化你的网站,实现巨大的成功,第1步,优化页面速度网站速度是最重要的优化因素之一,页面加载速度慢会让访客感到沮丧,导致更高的跳出率和较低的搜索排名,优...。

电影、电视、书籍和音乐:探索收录内容的广阔世界 (电影电视剧下载软件)

收录的内容是指电影、电视节目、书籍和音乐等作品的汇编,供公众使用,这些作品可以包括各种类型的材料,从经典到当代,再到利基和独立的,无论您是要寻找经典电影,还是想探索新的电视节目,又或者是想阅读激动人心的书籍,还是想聆听美妙的音乐,收录的内容都能满足您的各种需求,电影电影收藏涵盖了从经典到当代的广泛电影范围,您可以找到各种类型的电影,包...。

探索 SEO 研究中心的卓越品质:深入洞察和实用指导 (seo研究中心 手机版)

引在竞争激烈的数字营销领域中,SEO研究中心脱颖而出,成为洞察力、创新和实用指南的宝库,通过深入的分析和以数据为基础的见解,该中心为SEO专业人员和营销人员提供所需的知识和工具,以在搜索引擎优化领域取得成功,深入调研和分析SEO研究中心的研究建立在对搜索引擎算法、用户行为和行业最佳实践的深入调研和分析之上,研究人员利用尖端技术和方法,...。

随机推荐随机推荐
四川明瑞环氧装饰工程有限公司

四川明瑞环氧装饰工程有限公司

中山鱼苗场13412834339中山鱼苗批发市场

中山鱼苗场13412834339中山鱼苗批发市场中山水产市场

一粒神

一粒神,胶囊,膨大胶,膨大,膨果,膨大冠军,山东赛冠生物科技有限公司

百业信息网

百业信息网是为广大用户提供生活黄页、体育运动、健康养生、商业理财、娱乐休闲、教育科学、文化艺术、游戏、生活、电子数码、电脑网络、社会民生等互动交流平台,助您解决遇到的疑难问题。

北京南山拓谱科技有限公司

北京南山拓谱科技有限公司-用数字权益赋能美好生活

秦岭信息港

秦岭信息港,鄠邑网,咱户县人民的网上家园!户县论坛汇聚了户县新闻,户县求职招聘,户县文学,旅游,交友,租屋等户县论坛版块。本地信息一切尽在户县论坛。

广东省广晟城市服务有限公司

1广东省广晟城市服务有限公司是广东省广晟控股集团有限公司下属、具有独立法人资格的国有全资专业物业管理公司,成立于1993年,属国内较早成立的物业管理服务企业,为国家一级资质物业服务企业,中国物业管理协会常务理事单位,广东省物业管理协会副会长单位,广州市物业管理协会副会长单位,通过了ISO9001/14001和OHSAS18001国际管理体系的认证。

北京满田种子科技发展有限公司

无限生长番茄|有限生长番茄|樱桃番茄|抗TY|大红果番茄|粉果番茄|辣椒种子|番茄种子|黄瓜种子|特菜|北京满田种子科技发展有限公司