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

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

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

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

public Work getWork() {

*eturn new StudentWork(); } }

public class TeacherWorkFactory implements IWorkFactory {

public Work getWork() {

return new TeacherWork(); } }

Test

public class Test {

public static void m*in(Strin*[] args) {

IWorkFactory studentWorkFactory = new StudentWorkFactory(); studentWorkFactory.getWork().d*Work();

IWorkFactory teacherWorkFactory * new TeacherWorkFactory(); teacherWorkFactory.g*tWork().*oWork(); } }

result

学生做作业! 老师审批作业!

1.1.2 抽象工厂

提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

适用性

1.一个系统要独立于它的*品的创建、组合和表示时。

2.一个系统要由多个产品系列中的一个来配置时。

3.当你要强调一系列相关的产品对象的设计以便进行联合使用时*

5

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

4*当你提供一个产品类库,而只想显示它们*接口而不是实现时。

参与者

1.Ab*tractFactory

声明一个创建抽象产品对象的操作接口。

2.ConcreteFactory

实现创建具体产品对象的操作。

*.AbstractProduct

为一类产品对象声明一个接口。

4.ConcreteProdu*t

定义一个将被相应的具体工厂创建的产品*象。 实现*bstractProduct接口。

5.Client

仅使用由AbstractFactory和AbstractProduc*类声明的接口

类图

例子

*bstractFactory

public interface IAn*malFactory {

ICat createCat();

IDog cre*teDog(); }

ConcreteFactory

6

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

p*blic class BlackAnimalFactory implem*nts IAnimalFactory {

public ICat createCat() { retur* new BlackCat(); }

public IDog createDog() { return new BlackDog(); } }

public class WhiteAnimalFac*ory imp*ements IAnimalFactory {

public ICat createCat() { return new WhiteCat(); }

public IDog cre*teDog() { return new WhiteDog(); } }

Abstrac*Product

public interface ICat {

void eat(); }

public interface IDog {

void eat(); }

Concrete*roduct

public class Black*at implements ICat {

public void eat() {

System.out.println(\ } }

7

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

public class WhiteCat implements *Cat {

public void eat() {

Sy*tem.out.prin*ln(\ } }

public class BlackDog implements IDog {

public void eat() {

System.out.println(\ } }

public class WhiteDog implements IDog {

public void eat() {

System.out.println(\ } }

Client

public static void main(String[] args) {

IAnimalFactory blackAnimalFa*tory = new BlackAnimalFactory(); ICat blackCat = blackAnimalFactory.createCat(); blackCat.eat();

IDog blackD*g = blackAnimalFactory.createDog(); blackDog.eat();

IAnimalFactory whiteAnimalF*ctory = new WhiteAnimalFactory(); ICat whiteCat = whiteAnimalFactory.createCat(); whiteCat.eat();

IDog *hiteDog = whiteAnimalFactory.createDog(); whiteDog.eat(); }

res*lt

The bla*k cat is eating! Th* black dog is eatin*! The white cat is eating!

8

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

The white dog is *ating!

1.1.3 建造者模式

将一个复杂对象的构*与它的表示分离,使*同样的构建过程可以创建不同的表示。

适用性

1.当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。

*.当构造过程必须允*被构造的对象有不同*表示时。

参与者

1.Builder

为创建一个Product对象的各个部件指定抽象接口。

2.ConcreteBuilder

实现Buil*er的接口以构造和装配该产品的各个部件。 定义并明确它所创建的表示* 提供一个检索产品的接口。

3.Director

构造一个使用Builder接口的对象。

4.Product

表示被构造的复杂对象。ConcreteBuilder创建该产品的内部表示并定义它的装配过程。

包含定义组成部件的类,包括将这些部件装配成最终产品的接口。

类图

9

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

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