
设计模式相关
zyjcxc
希望通过自身的努力改变现状
展开
-
设计模式学习笔记---1.设计模式六大原则
前言喜欢看技术性的文章,记得以前总是说设计模式不用太早接触之类的话, 所以一直觉得自己可能还没到水平学习,多次看了又看的设计模式,也是草草作罢。促使我决定好好学习设计模式的原因 现在我觉得时机也差不多了实在有些代码写完之后发现很难维护,或者改动的地方特别多, 肯定是我当时的设计有问题提升设计代码的能力 所发表所有内容仅代表个人观点。 设计模式概念说到设计模式,第一反应就是很深奥,完原创 2017-08-26 16:45:01 · 536 阅读 · 0 评论 -
设计模式——装饰器模式
1 场景问题1.1 复杂的奖金计算考虑这样一个实际应用:就是如何实现灵活的奖金计算。奖金计算是相对复杂的功能,尤其是对于业务部门的奖金计算方式,是非常复杂的,除了业务功能复杂外,另外一个麻烦之处是计算方式还经常需要变动,因为业务部门经常通过调整奖金的计算方式来激励士气。先从业务上看看现有的奖金计算方式的复杂性: 首先是奖金分类:对于个人,大致有个人当月业务奖金、个人累计奖金、个人业务增长奖金、及原创 2017-10-31 16:42:19 · 786 阅读 · 0 评论 -
设计模式——组合模式
1 场景问题1.1 商品类别树考虑这样一个实际的应用:管理商品类别树。在实现跟商品有关的应用系统的时候,一个很常见的功能就是商品类别树的管理,比如有如下所示的商品类别树:- 服装 - 男装 - 衬衣 - 夹克 - 女装 - 裙子 - 套装仔细观察上面的商品类别树,有以下几个明显的特点: 有一个根节点,比如服装,它没有原创 2017-10-31 10:29:36 · 359 阅读 · 0 评论 -
设计模式——桥接模式
1.场景1.1 发送提示消息考虑这样一个实际的业务功能:发送提示消息。基本上所有带业务流程处理的系统都会有这样的功能,比如某人有新的工作了,需要发送一条消息提示他。从业务上看,消息又分成普通消息、加急消息和特急消息多种,不同的消息类型,业务功能处理是不一样的:比如加急消息是在消息上添加加急,而特急消息除了添加特急外,还会做一条催促的记录,多久不完成会继续催促。从发送消息的手段上看,又有系统内短消息、原创 2017-10-27 14:33:20 · 401 阅读 · 0 评论 -
设计模式 适配器模式
实现方式 适配器模式从实现方式上分为两种,类适配器和对象适配器, 这两种的区别在于实现方式上的不同,一种采用继承,一种采用组合的方式。 另外从使用目的上来说,也可以分为两种,特殊适配器和缺省适配器,这两种的区别在于使用目的上的不同, 一种为了复用原有的代码并适配当前的接口,一种为了提供缺省的实现,避免子类需要实现不该实现的方法。适配器模式是补救措施,所以在系统设计过程中请原创 2017-10-09 16:21:13 · 195 阅读 · 0 评论 -
设计模式 外观模式
前言因为该模式最典型的应用是的web项目中的service层,故不记录代码了定义外观模式是软件工程中常用的一种软件设计模式。它为子系统中的一组接口提供一个统一的高层接口。这一接口使得子系统更加容易使用。相信做JAVA的各位大部分是WEB开发,那么肯定都对XXXDao,XXXService非常熟悉了,这显然和外观模式有一腿。它主要由两部分组成,一部分是子系统(包括接口,实现类,等等),一部分是外观接口原创 2017-10-09 16:19:39 · 548 阅读 · 0 评论 -
项目重构 策略模式应用
设计模式应用 策略模式趁还有点时间, 正好天天在学设计模式, 就把现有项目的一个小功能给重构了, 利用的是策略模式..实战场景: Web项目, 需求是将页面查询出的列表导出至excel, 页面有两个,分别是Order订单页面及Bill发票列表页, 两个页面的字段即excel的表头有所区别, 通过这两天学习设计模式, 重构了以前的代码.应用策略模式因为导出excel这个动原创 2017-08-31 19:47:43 · 371 阅读 · 0 评论 -
设计模式 工厂模式
1 场景问题实现一个导出数据的应用框架,来让客户选择数据的导出方式,并真正执行数据导出。有何问题分析上面要实现的应用框架,不管用户选择什么样的导出格式,最后导出的都是一个文件,而且系统并不知道究竟要导出成为什么样的文件,因此应该有一个统一的接口,来描述系统最后生成的对象,并操作输出的文件。ExportFileApi接口: boolean export(String 数据); 导出方法 返回成功失败原创 2017-09-09 14:33:39 · 289 阅读 · 0 评论 -
设计模式应用 生成器模式
设计模式应用 生成器模式看完了生成器模式, 决定改造之前的项目代码, 用生成器模式更妥当一些.实战场景: Web项目, 需求是将页面查询出的列表导出至excel, 页面有两个,分别是Order订单页面及Bill发票列表页, 两个页面的字段即excel的表头有所区别, 通过这两天学习设计模式, 重构了以前的代码.应用生成器模式因为导出excel这个动作, 在两个页面都一样, 只是导出的内容,表头啊,字原创 2017-09-17 15:38:06 · 901 阅读 · 0 评论 -
设计模式 建造者模式
1 场景问题1.1 继续导出数据的应用框架在讨论工厂方法模式的时候,提到了一个导出数据的应用框架。对于导出数据的应用框架,通常在导出数据上,会有一些约定的方式,比如导出成:文本格式、数据库备份形式、Excel格式、Xml格式等等。在工厂方法模式章节里面,讨论并使用工厂方法模式来解决了如何选择具体导出方式的问题,并没有涉及到每种方式具体如何实现。换句话说,在讨论工厂方法模式的时候,并没有讨论如何实现导原创 2017-09-17 15:26:22 · 567 阅读 · 0 评论 -
【笔记】设计模式 简单工厂模式
前言 我在看大话设计模式这本书, 希望能够通过发博客让自己坚持把这本书看完, 当然, 也仅仅是美好的希望:) 本书第一章的内容, 我也是用我自己的感悟总结出了此篇博文, 本篇主要讲通过一个小的java计算器的模拟程序, 经过一定程度的改造, 带来的快感和舒适:)… 其实是便捷的程序的扩展性和维护性的大幅度提高带来的快感..!计算程序两数之和public class App {原创 2017-08-26 22:53:36 · 594 阅读 · 0 评论 -
设计模式 单例模式
1 场景问题1.1 读取配置文件的内容考虑这样一个应用,读取配置文件的内容。很多应用项目,都有与应用相关的配置文件,这些配置文件多是由项目开发人员自定义的,在里面定义一些应用需要的参数数据。当然在实际的项目中,这种配置文件多采用xml格式的。也有采用properties格式的,毕竟使用Java来读取properties格式的配置文件比较简单。现在要读取配置文件的内容,该如何实现呢?1.2 不用模式的原创 2017-09-16 11:50:27 · 328 阅读 · 0 评论 -
设计模式 抽象工厂模式
1 场景问题1.1 选择组装电脑的配件举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常需要选择一系列的配件,比如:CPU、硬盘、内存、主板、电源、机箱等等。为了使讨论简单点,只考虑选择CPU和主板的问题。事实上,我们在选择CPU的时候,面临一系列的问题,比如:品牌、型号、针脚数目、主频等问题,只有把这些都确定下来,才能确定具体的CPU。同样,在选择主板的时候,也有一系列原创 2017-09-13 22:47:30 · 370 阅读 · 0 评论 -
【读书笔记】大话设计模式 第二章 策略模式
前言 本篇实现一个模拟收银的小程序, 来了解什么是策略模式, 和策略模式的好处都有哪些, 另外, 不像上一篇博文, 一点一点衍化了, 省略特别简单的版本吧, 直接过渡到有一点封装的版本, 因为能看设计模式的应该都不是刚入行的新手, 有些东西一句话带过就可以了.正文场景:一个简单的收银系统界面如图 输入价格和单价, 根据所选的不同计费方式计算总价的功能, 界面就是为了直观化功能, 其实你在练习原创 2017-08-27 03:21:01 · 370 阅读 · 0 评论 -
设计模式——享元模式
1 场景问题1.1 加入权限控制考虑这样一个问题,给系统加入权限控制,这基本上是所有的应用系统都有的功能了。对于应用系统而言,一般先要登录系统,才可以使用系统的功能,登录过后,用户的每次操作都需要经过权限系统的控制,确保该用户有操作该功能的权限,同时还要控制该用户对数据的访问权限、修改权限等等。总之一句话,一个安全的系统,需要对用户的每一次操作都要做权限检测,包括功能和数据,以确保只有获得相应授权的原创 2017-11-01 11:30:12 · 456 阅读 · 0 评论