CH09_避免浪费

2024-01-10 13:28
文章标签 ch09 避免浪费

本文主要是介绍CH09_避免浪费,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Flyweight模式

享元模式(Flyweight),运用共享技术有效地支持大量细粒度的对象。

类图

在这里插入图片描述

说明

  • Flyweight(轻量级)

    按照通常方式编写程序会导致程序变重,所以如果能够共享实例会比较好,而Flyweight角色表示的就是那些实例会被共享的类。

  • FlyweightFactory(轻量级工厂)

    FlyweightFactory角色是生成Flyweight角色的工程。在工厂中生成Flyweight角色可以实现共享实例。

  • Client(请求者)

    Client角色使用FlyweightFactory角色来生成Flyweight角色。

其他

享元模式可以避免大量非常相似类的开销。在程序设计中,有时需要生成大量细粒度的类实例来表示数据。如果能发现这些实例除了几个参数外基本都是相同的,有时就能够受大幅度地减少需要实例化的类的数量。如果能把那些参数移到类实例的外面,在方法调用时将它们传递进来,就可以通过共享大幅度地减少单个实例的数目。

Proxy模式

代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。

类图

在这里插入图片描述

说明

  • Subject(主体)

    Subject角色定义了使Proxy角色和RealSubject角色之间具有一致性的接口。由于存Subject角色,所以Client角色不必在意它所使用的究竟是Proxy角色还是RealSubject角色。

  • Proxy(代理人)

    Proxy角色尽量处理来自Client角色的请求。只有当自己不能处理时,它才会将工作交给RealSubject角色。Proxy角色只有在必要时才会生成RealSubject角色。Proxy角色实现了在Subject角色中定义的接口(API)

  • RealSubject(实际的主体)

    RealSubject角色会在Proxy角色无法胜任工作时出场。它与Proxy角色一样,也实现了在Subject角色中定义的接口(API)

  • Client(请求者)

    使用Proxy模式的角色,Client角色并不包含在Proxy模式中。

模式的应用

  • 远程代理

    为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。典型应用场景有WebService,RPC等。

  • 虚拟代理

    根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。典型案例:浏览器打开一个很大的HTML网页时,网页中有何多的文字和图片,浏览器会先渲染文字部分展示给用户,而图片则是在后台下载完后再逐个渲染。

  • 安全代理

    用来控制真实对象访问时的权限(功能)。典型案例:经典的三层结构,一般数据层封装了对数据库的接口;业务层只能调用数据层封装的功能接口,不能直接访问数据,不能执行任意的SQL脚本。

这篇关于CH09_避免浪费的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/590964

相关文章

[深度学习]Part2 支持向量机(SVM)Ch09-2——【DeepBlue学习笔记】

本文仅供学习使用 本章需要提前学习拉格朗日乘子法、KKT条件、原问题与对偶问题(优化方法) 支持向量机(SVM)Ch09-2 1.4 SMO1.5 SVR 2. scitit-learn SVM算法库概述2.1 分类算法——SVC2.2 回归算法 3. 核方法 线性核SVM迄今仍是文本分类的首选技术——若将每个单词作为文本数据的一个属性,则该属性空间维度很高,冗余度

ch09:房屋出租系统

目录 界面实现设计实现代码部分Utility 界面 实现 设计 实现 代码部分 package com.houserent.domain;public class House {//编号 房主 电话 地址 月租 状态(未出租/已出租)private int id;private String name;privat

nlp-形式语言与自动机-ch09-词义消歧

1、词义消歧方法分为:监督的和无监督的。 2、有监督的语义消歧方法:基于互信息的消歧方法: 基本思路:对每个需要消歧的多义词寻找一个上下文特征,这个特征能够可靠地指示该多义词在特定上下文语境中使用的是哪种语义。 3、有监督的语义消歧方法:基于贝叶斯分类器的消歧方法: 基本思路:在双语语料库中多义词的翻译(语义)取决于该词所处的上下文语境c, 4、基于义类辞典的消歧方法: 基本思想:多义