随笔分类 -  Java-c2-Java设计模式

摘要:测试可达性 InerAddress类有两个isRechable()方法 可以测试一个特定的节点对向前主机是否可以建立一个网络连接 无法连接可能由于阻塞、防火墙等因素 第一个方法:在指定的时间内得到相应则返回为true 第二个方法:允许指定从那个本地网络接口建立连接,以及生存时间 Inet4Addre 阅读全文
posted @ 2019-05-23 13:43 MrChengs 阅读(291) 评论(0) 推荐(0)
摘要:迭代器模式(便利聚合对象中元素) 在软件开发中,我们经常需要使用聚合对象来存储一系列数据。 聚合对象拥有两个职责:一是存储数据;二是遍历数据。 从依赖性来看,前者是聚合对象的基本职责;而后者既是可变化的,又是可分离的。 因此,可以将遍历数据的行为从聚合对象中分离出来,封装在一个被称之为“迭代器”的对 阅读全文
posted @ 2019-05-21 20:27 MrChengs 阅读(219) 评论(0) 推荐(0)
摘要:观察者模式(对象之间的联动) 观察者模式是使用频率最高的设计模式之一,它用于建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应作出反应。 在观察者模式中,发生改变的对象称为观察目标,而被通知的对象称为观察者 一个观察目标可以对应多个观察者,而且这些观察者之间可以没 阅读全文
posted @ 2019-05-21 17:41 MrChengs 阅读(219) 评论(0) 推荐(0)
摘要:命令模式(请求发送者与接收者解耦) 在软件开发中,我们经常需要向某些对象发送请求(调用其中的某个或某些方法),但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,此时,我们特别希望能够以一种松耦合的方式来设计软件,使得请求发送者与请求接收者能够消除彼此之间的耦合,让对象之间的调用关系更加灵活, 阅读全文
posted @ 2019-05-21 13:19 MrChengs 阅读(185) 评论(0) 推荐(0)
摘要:职责链模式 很多情况下,在一个软件系统中可以处理某个请求的对象不止一个,例如SCM系统中的采购单审批,主任、副董事长、董事长和董事会都可以处理采购单,他们可以构成一条处理采购单的链式结构,采购单沿着这条链进行传递,这条链就称为职责链。 职责链可以是一条直线、一个环或者一个树形结构,最常见的职责链是直 阅读全文
posted @ 2019-05-21 09:38 MrChengs 阅读(318) 评论(0) 推荐(0)
摘要:代理模式 当无法直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象来间接访问 为了保证客户端使用的透明性,所访问的真实对象与代理对象需要实现相同的接口。 代理模式是一种应用很广泛的结构型设计模式,而且变化形式非常多,常见的代理形式包括远程代理、保护代理、虚拟代理、缓冲代理、智能引用代理等, 阅读全文
posted @ 2019-05-21 08:45 MrChengs 阅读(277) 评论(0) 推荐(0)
摘要:享元模式(复用) 当一个软件系统在运行时产生的对象数量太多,将导致运行代价过高,带来系统性能下降等问题。 享元模式通过共享技术实现相同或相似对象的重用,在逻辑上每一个出现的字符都有一个对象与之对应,然而在物理上它们却共享同一个享元对象,这个对象可以出现在一个字符串的不同地方,相同的字符对象都指向同一 阅读全文
posted @ 2019-05-20 23:36 MrChengs 阅读(230) 评论(0) 推荐(0)
摘要:外观模式 定义: 为子系统中的一组接口提供一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式又称为门面模式,它是一种对象结构型模式。 外观模式是迪米特法则的一种具体实现 通过引入一个新的外观角色可以降低原有系统的复杂度 同时降低客户类与子系统的耦合度 图构: 阅读全文
posted @ 2019-05-20 22:52 MrChengs 阅读(172) 评论(0) 推荐(0)
摘要:装饰模式 装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为 装饰模式是一种用于替代继承的技术,它通过一种无须定义子类的方式来给对象动态增加职责,使用对象之间的关联关系取代类之间的继承关系 在装饰模式中引入了装饰类,在装饰类中既可以调用待装饰的原有类的方法 还可以增加新的方法,以扩充 阅读全文
posted @ 2019-05-20 22:18 MrChengs 阅读(278) 评论(0) 推荐(0)
摘要:组合模式 对于树形结构,当容器对象(如文件夹)的某一个方法被调用时,将遍历整个树形结构,寻找也包含这个方法的成员对象(可以是容器对象,也可以是叶子对象)并调用执行,牵一而动百,其中使用了递归调用的机制来对整个结构进行处理。 定义: 组合多个对象形成树形结构以表示具有“整体—部分”关系的层次结构。 组 阅读全文
posted @ 2019-05-20 21:13 MrChengs 阅读(226) 评论(0) 推荐(0)
摘要:桥接模式 桥接模式是一种很实用的结构型设计模式,如果软件系统中某个类存在两个独立变化的维度,通过该模式可以将这两个维度分离出来,使两者可以独立扩展,让系统更加符合“单一职责原则”。 与多层继承方案不同,它将两个独立变化的维度设计为两个独立的继承等级结构,并且在抽象层建立一个抽象关联,该关联关系类似一 阅读全文
posted @ 2019-05-20 19:34 MrChengs 阅读(223) 评论(0) 推荐(0)
摘要:适配器模式 在软件开发中,有时也存在类似这种不兼容的情况引入一个称之为适配器的角色来协调这些存在不兼容的结构 这种设计方案即为适配器模式 在适配器模式中引入了一个被称为适配器(Adapter)的包装类,而它所包装的对象称为适配者(Adaptee),即被适配的类。 适配器的实现就是把客户类的请求转化为 阅读全文
posted @ 2019-05-20 11:48 MrChengs 阅读(197) 评论(0) 推荐(0)
摘要:建造者模式 建造者模式是较为复杂的创建型模式 将客户端与包含多个组成部分的复杂对象的创建过程分离 客户端无须知道复杂对象内部组成部分与装配方式 只需要知道所需要建造者类型即可 关注如何一步一步创建一个复杂对象 不同的具体建造者定义了不同的创建过程 且具体建造者相互独立,增加方便,无须修改已有代码,系 阅读全文
posted @ 2019-05-20 09:13 MrChengs 阅读(191) 评论(0) 推荐(0)
摘要:原型模式 在使用原型模式时,我们需要首先创建一个原型对象,再通过复制这个原型对象来创建更多同类型的对象。 定义: 使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式是一种对象创建型模式。 工作原理: 将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象 阅读全文
posted @ 2019-05-20 00:42 MrChengs 阅读(204) 评论(0) 推荐(0)
摘要:单例模式 经常遇到类似的情况,为了节约系统资源,有时需要确保系统中某个类只有唯一一个实例,当这个唯一实例创建成功之后,我们无法再创建一个同类型的其他对象,所有的操作都只能基于这个唯一实例。 为了确保对象的唯一性,我们可以通过单例模式来实现,这就是单例模式的动机所在。 假设任务管理器的类名为TaskM 阅读全文
posted @ 2019-05-19 19:48 MrChengs 阅读(210) 评论(0) 推荐(0)
摘要:抽象工厂模式 产品等级结构和产品族 工厂方法模式中具体工厂负责生产具体的产品 每一个具体工厂对应一种具体的产品 工厂方法具有唯一性 一般情况下:一个具体工厂中只有一个或一组重载的工厂方法 有时候希望一个一个工厂可以提供多个产品对象 而不是单一的产品对象 产品等级结构: 产品等级结构即产品的继承结构, 阅读全文
posted @ 2019-05-19 13:14 MrChengs 阅读(276) 评论(0) 推荐(0)
摘要:工厂方法模式 简单工厂模式虽然简单,但存在一个很严重的问题当系统中需要引入新产品时,由于静态 工厂方法通过所传入参数的不同来创建不同的产品,这必定要修改工厂类的源代码,将违背“开闭原则” 在简单工厂模式中,所有的产品都由同一个工厂创建,工厂类职责较重,业务逻辑较为复杂,具体产品与工厂类之间的耦合度高 阅读全文
posted @ 2019-05-19 00:00 MrChengs 阅读(272) 评论(0) 推荐(0)
摘要:简单工厂模式 基本流程: 1、首先需要创建各种不同的对像的相关代码封装到不同的类中 这些类称为具体的产品类,将它们公共的代码进行抽象和提取封装在一个抽象产品类中 每一个具体的产品类都是抽象产品的子类 2、提供一个工厂类用于创建各种产品,在工厂类中提供一个创建容器的方法 该方法可以根据传入的参数不同创 阅读全文
posted @ 2019-05-18 22:55 MrChengs 阅读(285) 评论(0) 推荐(0)
摘要:模式:在特定环境下人们解决某类问题重复出现问题的一套成功有效的解决方案 软件模式:将模式的一般概念应用于软件开发领域,即软件开发的总体指导思路或参照样板。 软件模式并非仅限于设计模式,还包括架构模式、分析模式和过程模式等 实际上,在软件开发生命周期的每一个阶段都存在着一些被认同的模式 软件模式基本结 阅读全文
posted @ 2019-05-18 18:51 MrChengs 阅读(288) 评论(0) 推荐(0)
摘要:观察者模式: 定义对象之间一种一对多的关系,使得每当一个一个对象发生改变的时候,其相关依赖对象皆通知并且自动更改。 意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新 主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合, 阅读全文
posted @ 2018-10-21 20:37 MrChengs 阅读(308) 评论(0) 推荐(0)