![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 80
xiaoping8411
一个走在路上的人,前面有太多太多的路。一个为了学习与生活,要不停奔走的人。
展开
-
设计模式学习2 -- 工厂模式
1. 工厂模式1.1. 概述在Action里面,我们要调用CustomerDao的login方法,传统情况你用什么代码?CustomerDao cdao = new CustomerDao():cdao.login();1.2. 考虑以下情况l 如果cdao实例对象前,需要做一些准备工作,如:判断数据是否连接l原创 2009-11-12 12:42:00 · 737 阅读 · 0 评论 -
设计模式学习6 -- Decorator(装饰)模式
1. Decorator(装饰)模式1.1. 概述l 场景:贵公司编写一个类ReadStrFromFile,专门负责从文件内读取字符串。本来这个功能已经足够了。但是后来发现这些字符串还需要统一变成大写字母。请你编写一个类,能够将字符串转大写字母,并配合上面的类使用,你有何高见?l 方案1:在主函数内,编写一个类,调用ReadStrFromFil原创 2009-11-12 13:00:00 · 709 阅读 · 0 评论 -
设计模式学习9 -- 观察者模式(Observer)
1. 观察者模式(Observer)1.1. 概述l 场景:网站产品价格等方面有变化,如果系统能自动通知会员,将是网上商店区别传统商店的一大特色,这就需要在商品product中加入Observer这样的角色,以便product细节发生变化时Observer能自动观察到这种变化,并能进行及时的update或notify动作l 一个对象发生变化,能原创 2009-11-12 13:17:00 · 634 阅读 · 0 评论 -
设计模式学习8 -- Flyweight(享元模式)
1. Flyweight(享元模式)1.1. 概述l 场景:字处理软件,如果以每个文字都作为一个对象,几千个字,对象数就是几千,无疑消耗内存l 但是我们发现,很多字(内容以及特征)是一样的l 另一个场景:你要从一个数据库中读取一系列字符串,这些字符串中有许多是重复的。l 可以将这些字符串存储在池(pool)中。原创 2009-11-12 13:14:00 · 751 阅读 · 0 评论 -
设计模式学习5 -- 适配器模式(Adapter)
1. 适配器模式(Adapter)1.1. 单向适配器模式1.1.1. 概述l 场景:有两个类n Class A{ public void funA(){/*A代码 */ }}n Class B{ public void funB(){/*B代码 */ }}l 这两个模块本来没有任何关系,但是应用中原创 2009-11-12 12:55:00 · 893 阅读 · 0 评论 -
设计模式学习1 -- 概念
概念模式提供了一个解决方案,它是一种设计方法,而不是一种编程技术。作用主要有两方面: l 降低耦合性 l 增加灵活性 设计模式的分类 其实,模式的数量多少并不重要,重要的是那些模式对我们实际应用的作用。 模式主要分为三类: l 创建模式:创建对象, 主要有:原创 2009-11-12 12:35:00 · 777 阅读 · 0 评论 -
设计模式学习3 -- 建造模式
1. 建造模式1.1. 概述 l 在Windows中打开一个计算器,如果要你编写这个应用,你如何做?l 写一个类,在构造函数里面将各个控件加上去?l 考虑如下问题l 将数字键全部改颜色l 将最左边四个键放在最右边l 很明显,事情变得非常麻烦1.2. 解决方法原创 2009-11-12 12:45:00 · 629 阅读 · 0 评论 -
设计模式学习7 -- Proxy:代理模式
1. Proxy:代理模式1.1. 概述l 代理概念可以理解为:在出发点到目的地之间有一道中间层,意为代理。例如:代理服务器。l 场景:有一个图片查看应用,每个图片都很大,载入很消耗资源,我们希望有一个界面上显示的是缩略图片,用户点击缩略图片,能够载入实际的图片,怎样编写这个应用?l 用代理是一种比较好的办法1.2. 解决方法原创 2009-11-12 13:10:00 · 669 阅读 · 0 评论 -
设计模式学习4 -- 单例模式
1. 单例模式(Singleton)1.1. 概述l 场景:在一个项目中,需要经常对文件系统进行操作,如创建文件,拷贝文件等等,假如这些功能用FileOpe类封装,你如何调用这个类?FileOpe fo = new FileOpe();Fo.createFile();l 但是我们发现,这个类作的工作与具体的业务逻辑似乎关系不大,他做的是一些共原创 2009-11-12 12:51:00 · 787 阅读 · 0 评论 -
设计模式学习10 -- 命令模式
1. 命令模式1.1. 概述l 将来自客户端的请求传入一个对象,无需了解这个请求激活的动作或有关接受这个请求的处理细节。l 具体的Command模式代码各式各样,因为如何封装命令,不同系统有不同的做法,下面事例是将命令封装在一个Collection的List中,任何对象一旦加入List中,实际上装入了一个封闭的黑盒中,对象的特征消失了,只有取出时,才原创 2009-11-12 13:19:00 · 759 阅读 · 2 评论