《JAVA与模式》之有感

陆陆续续看了gof,大话设计模式等books,对于设计模式仍然是徘徊于门外,随偶有感悟,然久必忘记,是实则悟性太低。

因此作此文,结合博客中一系列关于设计模式的博文,加深对设计模式的理解,同时备自己随时复习。

1.设计模式应用场景

当我们遇到整个应用生命周期中,只需要一个对象的时候,我们首先考虑到的就是使用单例,当我们需要根据不同的产品线组合生产不同产品的时候,我们知道可以使用抽象工厂

当我们需要动态的给一些类新增功能的时候,我们知道java的IO使用的就是装修模式来解决这个问题。

因此,合适的场景+适当的设计模式才能彰显出设计模式的优势和代码之美。如何做到在合适的场景使用适当的设计模式,则需要我们不断的在应用过程中去思考,抽象出情景特性

,与相适应的的多个设计模式进行匹配,找到适合的模式进行代码功能实现。

2.设计模式代码框架

我认为每个设计模式,单纯的从代码的角度来看,必然有其一定的规律性,则就可以将它固化,形成一个套路,就是代码的框架

3.设计模式本身剖析

对于每个设计模式本身,其又有特殊性,诸如工厂模式包括简单工厂和抽象工厂,享元模式包括单纯和复合,代理模式包括静态代理和动态代理

静态代理有了,为什么又需要动态代理,搞清楚了这些,对于设计模式的使用是有裨益的

4.设计模式之间区别

种种设计模式之间,其是有一定联系又相互贯穿,好比享元模式中就用到了工厂模式和组合模式,桥接模式与策略模式的区别,策略模式与状态模式的区别等等

通过对比,也是可以加深对于设计模式的理解

目前有感于此,后续慢慢补充,欢饮补充和拍砖。。

《JAVA与模式》之有感

时间: 2024-10-03 22:54:10

《JAVA与模式》之有感的相关文章

Java 策略模式

Java 策略模式 @author ixenos 定义 1.封装算法:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换 2.分割行为和环境:对用户屏蔽内部实现,使客户端在调用算法的时候能够互不影响地互换 策略模式的实现(面向接口编程) 方法: 1.接口多态:策略模式的用意是针对一组算法,将每个算法封装到具有共同接口的独立的类中,从而使他们之间可以相互替换 2.具体策略提供不同算法,环境负责维持和查询策略,把具体策略和环境分割开来,使得算法可以在不影响客户端和环境的情况下修改 角色分工:

JAVA的模式对话框和非模式对话框

周末的时候,一位网友让我帮他把他的无模式对话框改成有模式对话框. 界面是有swing制作的,都是JFrame,我从来没有接触过swing编程.大致的代码还是看的懂,很多都和C#很相似. 然后就去查资料,JAVA的模式对话框是如何调用的.终于查到了需要用到JDialog类,JDialog的构造函数里可以指定是否是模式对话框. 1 public JDialog(Frame owner, String title, boolean modal) { 2 super(owner == null? Swi

《JAVA与模式》之原型模式

在阎宏博士的<JAVA与模式>一书中开头是这样描述原型(Prototype)模式的: 原型模式属于对象的创建模式.通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象.这就是选型模式的用意. 原型模式的结构 原型模式要求对象实现一个可以"克隆"自身的接口,这样就可以通过复制一个实例对象本身来创建一个新的实例.这样一来,通过原型实例创建新的对象,就不再需要关心这个实例本身的类型,只要实现了克隆自身的方法,就可以通过这个方法来获取新

java 代理模式详解

java 动态代理(JDK和cglib) 设计模式这东东每次看到就明白可过段时间又不能很流利的说出来,今天就用详细的比喻和实例来加深自己的理解(小弟水平不高有不对的地方希望大家能指出来). (1)代理这个词生活中有很多比如在街边卖手机卡.充公交地铁卡的小商店他们都起了代理的作用,java中的代理跟这些小店商的作用是一样的.再比如我想在淘宝上开个服装店但又没有货源怎么办,这时候我就要跟淘宝上某一卖家联系做他的代理.我跟我的商家都要卖衣服(就好比我们都继承了卖衣服的接口sellClothesInte

Java工厂模式

Java工厂模式 看了这么多关于工厂模式的解说,还是认为这篇文章讲的好理解,贴出来和大家分享分享. 一.引子 话说十年前,有一个****户,他家有三辆汽车--Benz奔驰.Bmw宝马.Audi奥迪,还雇了司机为他开车.只是,****户坐车时总是怪怪的:上Benz车后跟司机说"开奔驰车!",坐上Bmw后他说"开宝马车!",坐上Audi说"开奥迪车!".你一定说:这人有病!直接说开车不即可了?! 而当把这个****户的行为放到我们程序设计中来时,会发

《JAVA与模式》之工厂方法模式

在阎宏博士的<JAVA与模式>一书中开头是这样描述工厂方法模式的: 工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式. 工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中. 那么工厂方法模式是在什么场景下使用呢,下面就以本人的理解举例说明: 相信很多人都做过导入导出功能,就拿导出功能来说.有这么一个需求:XX系统需要支持对数据库中的员工薪资进行导出,并且支持多种格式

《JAVA与模式》之适配器模式

在阎宏博士的<JAVA与模式>一书中开头是这样描述适配器(Adapter)模式的: 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. 适配器模式的用途 用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极.阴极外,还有一个地极.而有些地方的电源插座却只有两极,没有地极.电源插座与笔记本电脑的电源插头不匹配使得笔记本电脑无法使用.这时候一个三相到两相的转换器(适配器)就能解决此问题,而这正像是本模式所做的事情. 适配器模式

《JAVA与模式》之建造模式

在阎宏博士的<JAVA与模式>一书中开头是这样描述建造(Builder)模式的: 建造模式是对象的创建模式.建造模式可以将一个产品的内部表象(internal representation)与产品的生产过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象. 产品的内部表象 一个产品常有不同的组成成分作为产品的零件,这些零件有可能是对象,也有可能不是对象,它们通常又叫做产品的内部表象(internal representation).不同的产品可以有不同的内部表象,也就是不同的零

《JAVA与模式》之组合模式

定义(GoF<设计模式>): 将对象组合成树形结构以表示“部分整体”的层次结构.组合模式使得用户对单个对象和使用具有一致性. 及角色: 1.Component 是组合中的对象声明接口,在适当的情况下,实现所有类共有接口的默认行为.声明一个接口用于访问和管理Component子部件. 2.Leaf 在组合中表示叶子结点对象,叶子结点没有子结点. 3.Composite 定义有枝节点行为,用来存储子部件,在Component接口中实现与子部件有关操作,如增加(add)和删除 (remove)等.