前面说过,结构模式指的是在设计上只使用基本结构:聚合,组合,继承的, 用结构来体现逻辑.
因为模式的需要,所以这里不的不开始用interface了,我会尽量控制.
代码是随手敲的,肯定有问题的,模式是思想,结构只是表现形式,并不是非常严格固定的.
Proxy,Adapter,Decorator这3个模式看起来太像,都使用聚合,所以把他们在一起分析.
如果说在这些模式的类名上,没有XxxxProxy,XxxxAdapter..咋一看肯定是没法区分出哪种模式,为什么呢?
因为他们之间只存在语意上的区别: 单一聚合的使用技巧.
延迟装载
此对象非彼对象.在DAO中,有些模型对象太大 ,但又不的不有这个大头,怎么办呢?我们可以使用Proxy进行延迟载入.
Proxy
//模型接口
interface User{
String getUsername();
void setUsername(String str);
Address getAddress();
void setAddress(Address addr);
}
//模型代理对象,内部数据并不完全
class UserProxy{
private int id;
private String username;
private Address addr;
//...username;
public Address getAddress(){
//代理在这,只有需要addr时候才去从数据库DAO载入
addr = AddressDAO.getAddress(id);
return addr;
}
public void setAddress(Address addr){
this.addr = addr;
}
}
是不是很神气? ^^ proxy的意思就是用代理对象去代替真实的对象,只需要代理对象在需要的时候给出真实的数据就行了,具体从哪儿给 比如说RemoteProxy,还是什么,都给隐藏掉 很爽吧 ^^
匹配旧有的类
现在有一个类,他负责操作一个机器,这个类开始就固定好了的,比如说要机器移动,x.start(), 很不爽,感觉移动应该叫move()才对, 与我们的代码语意不符,怎么改呢,就可以用到Adapter了.
Adapter
class Machine{
public void start(){
//移动机器
}
}
class MachineAdapter{
private Machine mac = new Machine();
public void move(){
mac.move();
}
}
/**感觉是不是有点不真实? ^^ 模型就是这样简单,但是这个模式的作用真正是大大的,我们现在为什么使用spring可以不用管底层具体是哪个组件,就是依靠它了, 当确定使用的组件后, 进行adapter就可以在高层调用统一代码了*/
Decorator
有时候一个类给我们,可是我们并不完全满意它所提供的功能, 想要修改这些功能 ,怎么办呢? Decorator就出场了.
它给了我们修改以有类代码的增,删改能力.具体例子看:
http://www.iteye.com/topic/262243
刚写的,里面有个, 不想弄第2遍了
Facade
这个应该是相当熟悉的了, 在DAO操作中,Action类有时候需要进行多种数据对象操作,就出现了操作数据的DAOManager类,在这里,它进行所有的dao
DAOManager{
public void getCash(String id, String cash){
Auth.doCheck();
UserDAO.get...
//其他DAO行为
}
}
/**他的作用是封装掉麻烦的调用,这样就可以把那些麻烦转换成行为操作,直接getCash了*/
Bridge
现在有2套系统,我想要非常方便在进行切换,如何做呢? 这,我们就可以把行为与抽象分离了
Helo{
//逻辑
void doHelp();
}
HelpVersion{
doCheck();
}
HelpVersionImpl{
public void doCheck(){
//行为
}
}
HelpImpl{
private HelpVersion ver = new HelpVersion();
public void doHelp(){
ver.doCheck();
}
}
/**替换的时候只需要改下ver就可以随意替换了,openjdk里有很多这个结构,而且类名字都叫HelpVersion1 HelpVersion2,它就是为了方便切换java1和j2se的*/
Flyweight
这是一种设计类的方式,让对象简单.假如以一个村子为基础为每个人设计信息,因为他们的地址基本相同的,那么:
class Person{
//....
}
class Country{
private HashMap nameMap = new HashMap();
private String addr ="住址:.....";
//把人信息放入村子里
public void setPerson(Person p){
int id = p.getID();
String name = p.getName();
nameMap.put(id, name);
if(addr ==null)
addr =p.getAddress();
}
//得到人信息
public Person getPerson(int id){
Person p;
String name = nameMap.get(id);
p = new Person(id, name , address);
return p;
}
}
/**把对象里大量的address删除了,但依然可以得到相关的Person*/
Composite
留空,明天写,累了
分享到:
相关推荐
本资源主要涵盖了创建模式、结构模式和行为模式三大类,每种模式都是面向对象设计的核心部分。 创建模式主要用于解决对象的创建问题,使得对象的创建过程更加灵活,易于扩展。其中: 1. 工厂模式(Factory Pattern...
Java与模式 (清晰书签版) 创建模式、 行为模式、 结构模式 模式 清晰
这是JAVA设计模式中属于结构模式的部分,包括Flyweight(共享模式)、Bridge(桥模式)、Decorator(装饰模式)、Composite(组合模式)、Adapter(适配器模式)、Proxy(代理模式)、Facade (外观模式)的源代码。其中有些模式中...
结构模式是软件设计模式的一种,主要关注系统的组织结构和组件之间的关系。在软件工程中,设计模式是解决常见设计问题的模板,它们是经过验证、可重用的解决方案,能够帮助我们更有效地设计和实现软件系统。结构模式...
### 结构模式识别知识点概述 #### 一、结构模式识别定义与重要性 **结构模式识别**是一种在模式识别领域中的重要分支,它侧重于分析和处理具有内在结构的复杂数据,例如序列、树状结构或图形等。与统计模式识别...
《结构模式识别(图像模式识别基础)》是深入探讨图像处理和模式识别领域的重要参考资料,尤其对于初学者来说,这份资料提供了丰富的基础知识。在本文中,我们将深入理解结构模式识别的基本概念、原理以及常用方法。 ...
结构模式是设计模式的一种,主要关注软件系统中的对象和类如何组织以形成更复杂的结构。在面向对象设计中,结构模式扮演着至关重要的角色,它们提供了处理类与对象组合、接口以及不同对象间关系的方法。这里我们将...
《Java与模式 (清晰书签版)》是一本深度探讨Java编程中设计模式的书籍,主要涵盖了创建模式、行为模式和结构模式三大类别。设计模式是软件开发中的宝贵经验总结,它提供了一种在特定场景下解决问题的标准模板,使得...
在软件设计领域,复杂工厂缓存结构模式是一种高级的设计模式,它结合了复杂工厂模式和缓存机制,以提高系统性能并优化数据处理。这种模式主要用于处理对象的创建过程,并在需要时提供快速访问,避免频繁地从底层数据...
【银行治理结构模式改革方案探讨】 银行治理结构是确保银行稳健运营、防范风险、保障股东、客户和公众利益的关键组成部分。随着经济环境的变化和全球金融危机的教训,银行治理结构的改革变得至关重要。本文将深入...
严蔚敏 〈数据结构〉课程中有关于模式匹配算法的章节。这个程序实现了其中的代码。采用标准C编写。包含普通带带主串回溯的算法和KMP算法
在这个“matlab模式识别:结构模式识别方法树分类法.zip”压缩包中,我们聚焦于一种特定的模式识别方法——结构模式识别,并且重点探讨了树分类法。 结构模式识别是一种处理复杂数据结构的方法,它不仅考虑数据的...
软件体系结构模式ppt课件 软件体系结构模式是一种重要的设计方法,旨在帮助软件开发者更好地设计和构建软件系统。通过本课件,我们将深入了解软件体系结构模式的概念、构成、类别和作用。 一、什么是软件体系结构...
组织结构模式是企业管理中至关重要的组成部分,它定义了企业内部的等级关系、沟通方式以及分工协作的框架。本文深入探讨了几种主要的组织结构模式,包括传统的直线式、直线职能式、事业部式,以及适应复杂环境变化的...
数据库三层结构模式是一种常见的软件架构,它将应用分为表现层、业务层和数据层三个部分,以解决传统C/S(客户机/服务器)结构的不足。这种模式在现代信息系统中广泛应用,尤其对于大型、分布式系统而言,具有显著的...
java设计模式——创建模式、结构模式、行为模式
java设计模式:创建模式,行为模式,结构模式
公司治理结构模式与集团化管理是企业运营中的关键议题,尤其对于大型企业和集团而言,合理的治理结构能够确保公司的稳定发展和高效运营。本篇内容主要围绕四个方面展开:企业组织生命周期与组织变革、治理结构典型...