77范文网 - 专业文章范例文档资料分享平台

Java的23种设计模式(疯狂Java总结)(3)

来源:网络收集 时间:2019-08-31 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

Java设计模式(疯狂Java联盟版)

例子 Buil*er

public interface PersonBuilder {

void buildHead();

v*id buildBody();

void buildFoot()*

Person buildPerson(); }

ConcreteBuilder

public class ManBuilder implements PersonB*ilder {

Person person;

public ManBuilder() { person = ne* Man(); }

publ*c void build*ody() {

perso*.setBody(\建造男人的身体\

10

Java设计模式(疯狂Java联盟版)

}

public void buildFoot() {

person.setFo*t(\建造男人的脚\ }

public void buildHead() {

pers*n.setHead(\建造*人的头\ }

*ublic Person buildPerson() { retur* person; } }

Dir*ctor

public class PersonDirec*or {

public Person constructPerson(PersonBuilder pb) { pb.buildHead(); pb.buildBody(); pb.buildFoot();

return pb.buildPerson(); } }

Product

public class Person {

private String head;

private String body;

private String foot;

public String getH*ad() { return head; }

public void setHead(String hea*) { this.head = head; }

public String getBody() {

11

Java设计模式(疯狂Java联盟版)

return body; }

public void setBody(String body) { this.b*dy = body; }

public String getFoot() { return foot; }

public void setFoot(String foot) { t*is.foot = foot; } }

public class Man extends Person { }

Test

publ*c class Test{

public static void main(String[] ar*s) {

PersonDirector pd = new PersonDirector();

Person person = pd.constructPerson(new ManBuilder()); System*out.println(person.getBody()); System.out.println(person.getFoot()); System.out.println(person.getHead()); } }

result

建造男人*身体 建造男*的脚 建造男人的头

1.1.4 单态模式

保证一个类仅有一个实例,*提供一个访问它的全局访*点。

适用性

1.当类只能有一个*例而且客户可以从一个众所周知的访问点访问它时。

12

Java设计模式(疯狂Java联盟版)

2.当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。

参与者

Singleton

定义一个Instance操作,允许客户访问它的唯一实例。Instance是一个类操作。

可能负*创建它自己的唯一实例。

类图 例子 Singleton

public class Singleton {

private static Singleton sing;

private Singleton() { }

public st*tic Singleton get*nstance() { if (sing == null) {

sing = new Singleto*(); }

return sing; } }

Test

public class Test {

public static void *ain(*tring[] args) {

Singleton sing = Singleton.getInstance(); Singleton si*g2 = Singleton.getI*stance();

System.out.println(sing); System.out.pr*ntln(sing2); } }

result

13

Java设计模式(疯狂Java联盟版)

singleton.Singleton@1c78e57 singleton.Singleton@1c78e57

1.1.5 原型模式

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

适用性

1.当一个系统应该独立于它的产品创*、构成和表示时。

2.当要实例化的类是在运行时刻指定时,例如,通过动态装载。

3.为了避免创建一个与产品类层次平行的工厂*层次时。

4.当一个类的实例只能有几个不同状态组合中的一种时。

建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。

参与者

1. Prototype

声明一个克隆自身的接口。

2. ConcretePrototype

实现一个克隆自身的操作。

3. Client

让一个原型克*自身从而创建一个新的对象。

类图

例子 Prototype

14

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库Java的23种设计模式(疯狂Java总结)(3)在线全文阅读。

Java的23种设计模式(疯狂Java总结)(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/717642.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: