《JAVA与模式》之有感
陆陆续续看了gof,大话设计模式等books,对于设计模式仍然是徘徊于门外,随偶有感悟,然久必忘记,是实则悟性太低。
因此作此文,结合博客中一系列关于设计模式的博文,加深对设计模式的理解,同时备自己随时复习。
1.设计模式应用场景
当我们遇到整个应用生命周期中,只需要一个对象的时候,我们首先考虑到的就是使用单例,当我们需要根据不同的产品线组合生产不同产品的时候,我们知道可以使用抽象工厂
当我们需要动态的给一些类新增功能的时候,我们知道java的IO使用的就是装修模式来解决这个问题。
因此,合适的场景+适当的设计模式才能彰显出设计模式的优势和代码之美。如何做到在合适的场景使用适当的设计模式,则需要我们不断的在应用过程中去思考,抽象出情景特性
,与相适应的的多个设计模式进行匹配,找到适合的模式进行代码功能实现。
2.设计模式代码框架
我认为每个设计模式,单纯的从代码的角度来看,必然有其一定的规律性,则就可以将它固化,形成一个套路,就是代码的框架
3.设计模式本身剖析
对于每个设计模式本身,其又有特殊性,诸如工厂模式包括简单工厂和抽象工厂,享元模式包括单纯和复合,代理模式包括静态代理和动态代理
静态代理有了,为什么又需要动态代理,搞清楚了这些,对于设计模式的使用是有裨益的
4.设计模式之间区别
种种设计模式之间,其是有一定联系又相互贯穿,好比享元模式中就用到了工厂模式和组合模式,桥接模式与策略模式的区别,策略模式与状态模式的区别等等
通过对比,也是可以加深对于设计模式的理解
目前有感于此,后续慢慢补充,欢饮补充和拍砖。。
《JAVA与模式》之有感的更多相关文章
- 《JAVA与模式》之观察者模式
转自:http://www.cnblogs.com/java-my-life/archive/2012/05/16/2502279.html 在阎宏博士的<JAVA与模式>一书中开头是这样 ...
- JAVA的模式对话框和非模式对话框
周末的时候,一位网友让我帮他把他的无模式对话框改成有模式对话框. 界面是由swing制作的,都是JFrame,我从来没有接触过swing编程.大致的代码还是看的懂,很多都和C#很相似. 然后就去查资料 ...
- java工厂模式
(1)概念大白话:java工厂模式就是客户端(main函数)要创建对象觉得麻烦就让另外一个叫工厂的类帮它创建,然后自己每次要创建对象就叫工厂帮它弄,举个例子,在没有工厂这个"手下" ...
- 《JAVA与模式》之单例模式
在阎宏博士的<JAVA与模式>一书中开头是这样描述单例模式的: 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. 单例模式的 ...
- <代码整洁之道>、<java与模式>、<head first设计模式>读书笔记集合
一.前言 几个月前的看书笔记 ...
- Java代理模式
java代理模式及动态代理类 1. 代理模式 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目 ...
- [转]阎宏博士的JAVA与模式
阎宏,1964年出生于天津市.1987年毕业于中国科技大学近代物理系,1990年于中科院理论物理所获硕士学位,1992年获博士学位,翌年赴日本京都大学进行博士后研究工作. 作者曾于美国花旗银行(Cit ...
- 《JAVA与模式》之适配器模式(转)
在阎宏博士的<JAVA与模式>一书中开头是这样描述适配器(Adapter)模式的: 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能 ...
- 《JAVA与模式》之享元模式
<JAVA与模式>之享元模式 在阎宏博士的<JAVA与模式>一书中开头是这样描述享元(Flyweight)模式的: Flyweight在拳击比赛中指最轻量级,即“蝇量级”或“雨 ...
- 《JAVA与模式》之策略模式
<JAVA与模式>之策略模式 在阎宏博士的<JAVA与模式>一书中开头是这样描述策略(Strategy)模式的: 策略模式属于对象的行为模式.其用意是针对一组算法,将每一个算法 ...
随机推荐
- windows media server 组件安装后流媒体服务器启动失败
做好的web应用,去客户现场部署的时候发现流媒体服务器不能启动.(现场服务器系统为windows server2008 R2) 自己测试的时候搭建环境没什么问题.从来没有遇到安装windows med ...
- Steps to configure a FileShare Quorum Witness for Windows Failover Cluster
Step 1: Step 2: Step 3: Step 4: You must use the wizard to create the file share. Step 5: to make su ...
- C++类型转换的经典例子
- jquery设置按钮disabled
通常我们设置disabled属性会用attr和removeAttr,但是今天我们不讨论这个方式 我们讨论是的prop jQuery的定义是:获取在匹配的元素集中的第一个元素的属性值. 随着一些内置属性 ...
- (LeetCode 189)Rotate Array
Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the array ...
- 不兼容:不支持SCSI硬盘
获取机器硬件失败,可能你使用了SCSI硬盘,请更换一台主机进行安装 聚生网管2.11版本不支持scsi硬盘. 终于体会到了不兼容的麻烦了.
- OSX: SSH密钥使用日记(2)
准备钥匙和锁(密钥对): $ pwd /Users/test $ ssh-keygen -t dsa -C "$(whoami)@$(hostname),$(date '+%F %T')&q ...
- 微信小程序 - 自定义swiper(dot)指示点
点击下载示例:自定义swiper(dot)指示点
- touch 命令(转)
原文:http://www.cnblogs.com/peida/archive/2012/10/30/2745714.html linux的touch命令不常用,一般在使用make的时候可能会用到,用 ...
- The Web Sessions List
The Web Sessions list contains the list of HTTP Requests that are sent by your computer. You can res ...