设计模式
文章平均质量分 50
追梦*小生
搞开发的小硕
展开
-
原型模式实例-浅拷贝与深拷贝(Serializable)
原型模式实例问题描述结果图编程实现Photo类Resume类客户端问题描述在某在线招聘网站中,用户创建一个简历模板。针对不同的工作岗位,可以复制该简历模板并进行适当修改后,生产一份新的简历。在复制简历时,用户可以选择是否复制简历中的照片:如果选择“是”,则照片将一同被复制,用户对新简历的修改不会影响简历模板中的照片,对模板进行修改也不会影响新的简历;如果选择“否”:则直接引用简历模板的照片,修改简历模板中的照片将导致新的简历一同修改,反之亦然。结果图编程实现Photo类public class原创 2021-07-14 19:28:29 · 1827 阅读 · 0 评论 -
桥接模式实例-图片添加滤镜
桥接模式实例问题描述结果图编程实现Image抽象类具体图像类滤镜接口滤镜类具体实现客户端问题描述某手机美图APP软件支持多种不同的图像格式,例如JPG、GIF、BMP等常用图像格式,同时提供多种不同的滤镜对图像进行处理,例如木刻滤镜(Cutout)、模糊滤镜(Blur)、锐化滤镜(Sharpen)、纹理滤镜(Texture)等。现在采用桥接设计模式设计该APP软件,使得该软件能够为多种图像格式提供一序列图像处理滤镜,同时还能够增加新的图像格式和滤镜。结果图编程实现Image抽象类public原创 2021-07-13 11:07:55 · 2554 阅读 · 0 评论 -
外观模式实例-智能手机一键备份
外观模式实例问题描述结构图编程实现需要交互的类Facade类客户端问题描述某软件公司为新开发的智能手机控制与管理软件提供一键备份功能,通过该功能可以将原本存储在手机中的通讯录、短信、照片、音乐等资料一次性拷贝到移动存储介质中(例如:SD卡)中。在实现过程中需要与多个已有的类进行交互,如通讯录管理类、短信管理类。结构图编程实现需要交互的类public class ContactsManager { private String contacts; public Contacts原创 2021-07-09 16:18:37 · 2623 阅读 · 0 评论 -
装饰模式实例
装饰模式实例问题描述结构图编程实现Table类(被装饰者)抽象装饰者类具体装饰者类客户端问题描述在某OA系统中提供一个报表生成工具,用户可以通过该工具为表格增加表头和表尾,允许用户为报表增加多个不同的表头和表尾,用户还可以自行确定表头和表尾的次序,为了能够灵活的设置表头和表尾的次序并且易于增加表头和表尾。结构图编程实现Table类(被装饰者)public class Table { private int rowNum; private int colNum; priv原创 2021-07-09 12:16:50 · 1554 阅读 · 0 评论 -
建造者模式实例
建造者模式问题描述结构图编程实现Car类抽象的Builder类具体的Builder类Director类客户端类问题描述在赛车游戏中,赛车包括方程式赛车、场地越野赛车、运动汽车、卡车等类型,不同类型的赛车的车身、发动机、轮胎、变速箱等部件有所区别。玩家可以自行选择赛车类型,系统将根据玩家的选择创建出一辆完整的赛车。结构图编程实现Car类public class Car { private String body; private String engine; privat原创 2021-07-09 10:36:08 · 1450 阅读 · 2 评论 -
适配器模式实例
适配器模式实例问题描述结构图编程实现Encode类适配者类(Adaptee)适配器类(Adapter)客户端类问题描述某OA系统需要提供一个加密模块,将用户机密信息(如:用户口令、邮箱等)加密之后再存储到数据库中,系统已经定义好了数据库操作类。为了提高开发效率,系统需要重用已有的加密算法,这些算法封装在一些由第三方提供的类中,有些甚至没有源代码,试用适配器模式设计该加密模块,实现在不修改现有类的基础上重用第三方的加密方法。结构图编程实现Encode类public interface Encod原创 2021-07-07 13:40:30 · 3629 阅读 · 0 评论 -
抽象工厂模式实例
抽象工厂模式实例问题描述结构图编程实现Connection类Statement类Factory类Properties文件客户端问题描述某系统为改进数据库操作的性能,用户可以自定义数据库连接对象Connection和语句对象Statement,针对不同类型的数据提供不同的连接对象和语句对象,例如提供Oracle或MySQL专用连接类和语句类,而且用户可以通过配置文件等方式根据实际需要动态更换系统数据库。结构图编程实现Connection类public interface Connection {原创 2021-07-06 12:16:16 · 1327 阅读 · 0 评论 -
工厂方法模式实例
工厂方法模式实例问题描述结构图编程实现Connection类工厂类客户端问题描述在某网络管理软件中,需要为不同的网络协议提供不同的网络连接类,例如针对POP3协议的连接类POP3Connection,针对IMAP协议的连接类IMAPConnection,针对HTTP协议的连接类HTTPConnection等。由于网络连接对象创建的过程较为复杂,需要将其创建过程封装到专门的类中,该软件还支持更多类型的网络协议。结构图编程实现Connection类public interface Connecti原创 2021-07-04 18:22:32 · 3114 阅读 · 2 评论 -
简单工厂模式实例
简单工厂模式实例问题描述结构图编程实现接口实现类自定义UnsupportedShapeException异常类工厂类客户端问题描述使用简单工厂模式设计一个可以创建不同几何形状(Shape),如圆形(Circle)、矩形(Rectangle)和三角形(Triangle)等的绘图工具类,每个几何图形均具有绘制Draw()和擦除Erase()两个方法,要求在绘制不支持的几何图形时,抛出一个UnsupportedShapeException异常。绘制类图并编程模拟实现。结构图编程实现接口publ原创 2021-07-04 17:43:09 · 3090 阅读 · 0 评论 -
备忘录模式实现撤销(Undo)和重做(Redo)功能
备忘录模式实现撤销和重做功能问题结构类图程序代码问题某文字编辑软件须提供撤销(Undo)和重做/恢复(Redo)功能,并且该软件可支持文档对象的多步撤销和重做。开发人员决定采用备忘录模式来实现该功能,在实现过程中引入栈(Stack)作为数据结构。结构类图程序代码//备忘录类public class Memento { private String state; public Memento(UnRedoOriginator unRedoOriginator) {原创 2021-06-10 20:33:55 · 1982 阅读 · 0 评论