设计模式优缺点及应用场景整理

合集下载

php设计模式及其应用场景

php设计模式及其应用场景

php设计模式及其应用场景嘿,朋友们,今天咱们聊聊PHP设计模式这件事。

听起来可能有点晦涩,但别担心,我会用简单有趣的方式给你讲清楚。

你知道吗,设计模式就像是厨师的秘制配方,能让你做出更美味的菜肴。

要是你想做出一碗完美的PHP程序,那就得了解这些模式了。

先说说什么是设计模式。

设计模式其实就是一些解决特定问题的通用方法。

就好比你炒菜的时候,偶尔需要用到蒜蓉,偶尔又想做个清蒸,具体情况得具体分析嘛。

对于PHP来说,有很多种设计模式,各自都有不同的用途,能帮你节省不少时间和精力。

听起来是不是有点意思?比如说,有一个模式叫单例模式,哎呀,这玩意儿特别简单。

想象一下,你开了一家咖啡店,只想请一个咖啡师,那你当然得确保只有一个人能泡咖啡了。

单例模式就像是你给那咖啡师上了锁,别的地方再也找不着他。

这样,你的咖啡就能保持一致性,味道也不容易跑偏。

这样做既能避免资源浪费,也能提高效率,真是一举两得!再说说工厂模式。

这就像你去超市,看到不同的零食,想吃什么就直接拿。

工厂模式能帮你管理对象的创建,简直像是在超市里开了个零食工厂。

每次你需要一个新对象的时候,工厂就能给你提供,省去了你亲自去制作的麻烦。

这样一来,你就可以专心做好其他事儿,像个轻松的顾客,想吃啥就吃啥,真是美滋滋。

还有观察者模式,嘿,想象一下你和朋友们在聚会,大家都在聊八卦。

有个人突然告诉你某个明星的最新动态,立马就传遍了整个小圈子。

观察者模式就像是这种小道消息的传播机制。

你只需关注你感兴趣的事件,其他的就不用操心。

这样,你的信息更新速度快得飞起,跟上潮流根本不在话下。

接着咱们聊聊策略模式,这个模式就像你去健身房,看到不同的健身计划。

每个人的身体状况不同,适合的训练方式也不一样。

策略模式能让你根据具体情况选择不同的算法,像是为每位顾客定制的健身方案。

这样,不论是增肌、减脂,还是塑形,你总能找到最适合自己的那一款,效果好得不得了。

再来说说命令模式,感觉就像你在餐厅点餐。

设计模式及其应用场景

设计模式及其应用场景

设计模式及其应用场景
设计模式是指在编写一个应用程序时,应该考虑的常见问题的可重复使用的解决方案。

它们是软件设计过程中最重要的工具,并且能够提高程序的可扩展性,可重用性和可维护性。

设计模式的应用场景包括:
1. 工厂模式:工厂模式可用于创建一组相关或依赖对象,通常是使用一个工厂类来管理操作,以避免将创建代码集成到应用程序中。

2. 抽象工厂模式:抽象工厂模式是工厂模式的进一步抽象,它用于创建一组抽象产品对象,而不需要明确指定具体的产品类。

3. 单例模式:单例模式是一种将一个类的实例限制为一个的设计模式,它可以保证一个类只有一个实例,并且该实例易于访问,以满足特定需求。

4. 命令模式:命令模式是一种将动作封装到对象中的设计模式,它将请求、动作(action)和接收者(receiver)分离,从而使得发送者和接收者之间形成解耦。

5. 观察者模式:观察者模式是一种行为设计模式,它允许一个对象(观察者)注册另一个对象(主题)的更改,以便在主题更改时收到通知。

软件设计模式及应用场景分析

软件设计模式及应用场景分析

软件设计模式及应用场景分析随着计算机技术的不断发展和应用范围的扩大,软件开发变得越来越复杂、庞大,软件设计的可靠性和可维护性也随之变得更加重要。

为了解决这些问题,软件设计模式应运而生。

软件设计模式被定义为一组可用于解决特定问题的重复性方案。

它们旨在提高软件开发的效率和可重用性,并增加代码的可读性和可维护性。

设计模式是编程中的一种有力工具,它们提供了一种有效的方法,用于解决复杂问题和设计灵活的、可扩展的解决方案。

常见的设计模式以下是一些常见的软件设计模式:1. 工厂模式:一种创建对象的方式,它隐藏了对象的创建细节,使得代码更加灵活和可扩展。

2. 单例模式:一种确保一个类只有一个实例并提供全局访问的方式。

3. 观察者模式:一种在对象之间建立一种订阅和发布关系的方式,当一个对象状态发生改变时,其他对象都会被通知并执行相应的操作。

4. 策略模式:一种在 runtime 时选择执行哪种算法的方式。

5. 适配器模式:一种将一个接口转换为另一个接口的方式,从而让原来不兼容的对象能够协同工作。

6. 模板方法模式:一种通过定义算法骨架来提供代码复用的方式,允许子类在不改变算法基本框架的情况下重新定义算法的某些步骤。

7. 装饰者模式:一种在运行时动态扩展一个对象的功能的方式,通过将一个装饰类包装在一个现有对象的外部来实现对该对象的扩展。

8. 迭代器模式:允许客户端遍历容器中的元素,而无需了解容器的内部实现,从而提供更好的代码抽象。

应用场景以下是几个适合使用设计模式的场景:1. 软件系统需要大量的复杂对象。

2. 软件系统需要扩展性高,可维护性好。

3. 软件系统需要在运行时动态改变算法。

4. 软件系统需要隐藏对象的创建细节。

总结软件设计模式是一种帮助开发人员提高软件开发效率和代码可读性的重要工具。

它们不仅提供了一种解决特定问题的方法,还提供了一种通用解决方案,能够帮助开发人员更好地组织和管理代码。

在选择使用设计模式时,需要考虑到软件系统的需求以及其未来的发展方向。

10种常见的软件体系架构模式分析以及它们的用法、优缺点

10种常见的软件体系架构模式分析以及它们的用法、优缺点

10种常见的软件体系架构模式分析以及它们的用法、优缺点有没有想过要设计多大的企业规模系统?在主要的软件开发开始之前,我们必须选择一个合适的体系结构,它将为我们提供所需的功能和质量属性。

因此,在将它们应用到我们的设计之前,我们应该了解不同的体系结构。

根据维基百科中的定义:
架构模式是一个通用的、可重用的解决方案,用于在给定上下文中的软件体系结构中经常出现的问题。

架构模式与软件设计模式类似,但具有更广泛的范围。

在本文中,将简要地解释以下10种常见的体系架构模式,以及它们的用法、优缺点。

一. 分层模式
这种模式也称为多层体系架构模式。

它可以用来构造可以分解为子任务组的程序,每个子任务都处于一个特定的抽象级别。

每个层都为下一个提供更高层次服务。

一般信息系统中最常见的是如下所列的4层。

•表示层(也称为UI层)•应用层(也称为服务层)•业务逻辑层(也称为领域层)•数据访问层(也称为持久化层)
使用场景:•一般的桌面应用程序•电子商务Web应用程序
二. 客户端-服务器模式
这种模式由两部分组成:一个服务器和多个客户端。

服务器组件将为多个客户端组件提供服务。

客户端从服务器请求服务,服务器为这些客户端提供相关服务。

此外,服务器持续侦听客户机请求。

使用场景:•电子邮件,文件共享和银行等在线应用程序
三. 主从设备模式
这种模式由两方组成;主设备和从设备。

主设备组件在相同的从设备组件中分配工作,并计算最终结果,这些结果是由从设备返回的结果。

使用场景:•在数据库复制中,主数据库被认为是权威的来源,并且要与之同步•在计算。

设计模式综述

设计模式综述

设计模式综述一、引言设计模式是指在软件设计中,经过多次实践和验证,被广泛应用的一些可复用的解决方案。

它们是对软件设计中常见问题的一种抽象表达,提供了一种通用的解决方案。

本文将从概念、分类、优缺点等方面综述设计模式。

二、概念设计模式是指在软件开发中常见问题的解决方案。

它们是经过多次实践和验证,并被广泛应用的一些可复用的解决方案。

设计模式不是具体的代码实现,而是对于某个问题或场景下最优解决方式的抽象描述。

三、分类根据目标不同,设计模式可以分为三类:创建型模式、结构型模式和行为型模式。

1. 创建型模式创建型模式主要关注对象的创建过程,包括对象创建时机、对象如何被创建等问题。

常见的创建型模式有:(1)工厂方法模式:定义一个用于创建对象的接口,让子类决定将哪一个类实例化。

(2)抽象工厂模式:提供一个接口,用于创建相关或依赖对象族而不需要明确指定具体类。

(3)单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

(4)建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

(5)原型模式:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。

2. 结构型模式结构型模式主要关注对象之间的组合方式,包括如何组合成更大的结构。

常见的结构型模式有:(1)适配器模式:将一个类的接口转换成客户希望的另外一个接口。

适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

(2)桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。

(3)组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象具有一致性操作。

(4)装饰器模式:动态地给一个对象添加一些额外的职责。

就增加功能来说,装饰器比生成子类更为灵活。

(5)外观模式:为子系统中的一组接口提供一个统一接口。

外观定义了一个高层接口,这个接口使得这一子系统更加容易使用。

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

设计模式理解与应用

设计模式理解与应用

设计模式理解与应用设计模式是指在软件开发中,经常遇到的一些具有普遍重用价值的问题的解决方案,是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。

设计模式是一种高级软件解决方案,它将软件开发中的各种可重用的问题进行了通用化的抽象和描述,从而形成了一种通用的模式,可以被开发人员按照一定的规则和原则应用于具体的软件设计中。

第一章:理解设计模式设计模式的概念最早由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四个人在 1995 年提出,他们在《设计模式:可复用面向对象软件的基础》一书中介绍了 23 种常用的设计模式。

设计模式是一种经过长期验证,具有一定普遍性的解决方案,它并不把所有的问题都囊括进去,因此我们在使用时要根据实际情况去选择适合的模式。

设计模式通常分为 3 大类:创建型模式、结构型模式和行为型模式。

创建型模式主要解决对象的创建问题,包括单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式。

结构型模式主要解决组合对象和对象之间的关系问题,包括适配器模式、桥接模式、装饰器模式、组合模式、外观模式、享元模式、代理模式。

行为型模式主要针对对象之间的通信问题,包括责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式。

第二章:应用设计模式设计模式的使用,可以大大提高软件的开发效率和质量,但在使用之前,必须先对设计模式进行深入的学习和理解。

在实际应用中,我们要充分评估自己的开发需求,并根据实际情况,在设计阶段中使用其中一些设计模式。

例如,当我们需要使用一个日志库来记录系统运行过程中产生的各种日志信息时,可以采用单例模式来保证系统中只有一个日志实例,这样可以避免资源的浪费,提高系统效率。

再如,当我们需要使用一个网络连接库,在不同的平台中都能够正确地实现网络连接时,可以使用抽象工厂模式,通过工厂方法来创建各种不同类型的网络连接,从而在不同平台中实现连接的正确性和可靠性。

常用设计模式和应用场景

常用设计模式和应用场景

常用设计模式和应用场景
常用设计模式和应用场景
1、工厂模式
工厂模式是指定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。

应用场景:通常需要创建多种不同类型的对象,并且希望客户端不需要知道对象的具体类型,可以使用工厂模式。

2、策略模式
策略模式(Strategy Pattern)定义一系列算法,将每一个算法封装起来,并让它们可以互换。

策略模式让算法独立于使用它的客户而变化,也称为政策模式。

应用场景:当一个对象的行为或算法可能有多种实现时,可以使用策略模式,将每一种算法封装成一个类,从而使得算法可以相互替换。

3、观察者模式
观察者模式(Observer Pattern)定义对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。

应用场景:当一个对象的改变需要同时改变其他对象,而且它不知道具体有多少对象有待改变时,可以使用观察者模式。

4、单例模式
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。

这种类型的设计模式属于创建型模式,它提供了一种创建对象
的最佳方式。

应用场景:当需要保证一个类只有一个实例存在时,可以使用单例模式。

八种架构设计模式及其优缺点

八种架构设计模式及其优缺点

八种架构设计模式及其优缺点概述(上)1. 什么是架构我想这个问题,十个人回答得有十一个答案,因为另外的那一个是大家妥协的结果。

哈哈,我理解,架构就是骨架,如下图所示:人类的身体的支撑是主要由骨架来承担的,然后是其上的肌肉、神经、皮肤。

架构对于软件的重要性不亚于骨架对人类身体的重要性。

2. 什么是设计模式这个问题我问过的面试者不下于数十次,回答五花八门,在我看来,模式就是经验,设计模式就是设计经验,有了这些经验,我们就能在特定情况下使用特定的设计、组合设计,这样可以大大节省我们的设计时间,提高工作效率。

作为一个工作10年以上的老码农,经历的系统架构设计也算不少,接下来,我会把工作中用到的一些架构方面的设计模式分享给大家,望大家少走弯路。

总体而言,共有八种,分别是:1.单库单应用模式:最简单的,可能大家都见过2.内容分发模式:目前用的比较多3.查询分离模式:对于大并发的查询、业务4.微服务模式:适用于复杂的业务模式的拆解5.多级缓存模式:可以把缓存玩的很好6.分库分表模式:解决单机数据库瓶颈7.弹性伸缩模式:解决波峰波谷业务流量不均匀的方法之一8.多机房模式:解决高可用、高性能的一种方法3. 单库单应用模式这是最简单的一种设计模式,我们的大部分本科毕业设计、一些小的应用,基本上都是这种模式,这种模式的一般设计见下图:如上图所示,这种模式一般只有一个数据库,一个业务应用层,一个后台管理系统,所有的业务都是用过业务层完成的,所有的数据也都是存储在一个数据库中的,好一点会有数据库的同步。

虽然简单,但是也并不是一无是处。

优点:结构简单、开发速度快、实现简单,可用于产品的第一版等有原型验证需求、用户少的设计。

缺点:性能差、基本没有高可用、扩展性差,不适用于大规模部署、应用等生产环境。

4. 内容分发模式基本上所有的大型的网站都有或多或少的采用这一种设计模式,常见的应用场景是使用CDN技术把网页、图片、CSS、JS等这些静态资源分发到离用户最近的服务器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

看完发现有不太对的地方告诉我下 各设计模式优缺点总结

1桥接模式 优点:1 将实现予以解耦,让它和界面之间不再永久绑定 2 抽象和实现可以独立扩展,不会影响到对方 3 对于“具体的抽象类”所做的改变,不会影响到客户。 缺点:1. 增加了复杂度 用途:1. 适合使用在需要跨越多个平台的图形和窗口上 2. 当需要用不同的方式改变接口和实现时,你会发现桥接模式很好用。 具体实例:跨平台的软件,不同电视机和不同的遥控器。

2生成器模式(建造者模式)

优点: 1. 将一个复杂对象的创建过程封装起来 2. 允许对象通过多个步骤来创建,并且可以改变创建过程 3. 向客户隐藏内部的表现 4. 产品的实现可以被替换,因为客户只看到一个抽象的接口 缺点: 1. 与工厂模式相比,采用生成器模式创建对象更复杂,其客户,需要更多的知识领域。 用处: 用来创建组合结构。 典型例子: 想不起典型例子 还是扯那个画小人,构建小人分画头,画身体,画双手,黄双脚等不同构建部分,全部放在一起构建。

3职责链模式

优点: 1. 将请求的发送者和接收者解耦 2. 可以简化你的对象,因为它不需要知道链的结构 3. 通过改变链内的成员或调动他们的次序,允许你动态地新增或删除责任 缺点: 1. 并不保证请求一定会被执行,如果没有任何对象处理它的话,它可能会落到链尾端之外 2. 可能不容观察运行时的特征,有碍于除错。 用途: 经常被使用在窗口系统中,处理鼠标和键盘之类的事件。 当算法牵涉到一种链型运算,而且不希望处理过程中有过多的循环和条件选择语句,并 且希望比较容易的扩充文法,可以采用职责链模式。 1)有多个对象处理请求,到底怎么处理在运行时确定。 2)希望在不明确指定接收者的情况下,向多个对象中的一个提交请求。 3)可处理一个请求的对象集合应该被动态指定。 典型例子: 一个请求发送给前台,前台表示我无权管理,将请求传递给财务部门,财务部门再……

4蝇量模式(享元)

优点: 1. 减少运行时对象实例的个数,节省内存 2. 将许多“虚拟”对象的状态集中管理 缺点: 一旦你实现了它,单个的逻辑实现将无法拥有独立而不同的行为 用途: 当一个类有许多的实例,而这些实例能被同一方法控制的时候,我们就可以使用蝇量模式。(这话什么意思啊,HF书上原话,是这话有问题还是我理解能力有问题?!) 具体场景: 五子棋中的黑白子,改变坐标状态(x,y),但用同一个实体。

5解释器模式(这个模式我真没仔细看)

优点: 1. 将每一个语法规则表示成一个类,方便事先语言。 2. 因为语法由许多类表示,所以你可以轻易地改变或扩展此语言 3. 通过在类结构中加入新的方法,可以在解释的同时增加新的行为,例如打印格式的梅花或者进行复制的程序验证。 缺点: 当语法规则数目太大时,这个模式可能会变得非常繁琐。 用途: 1. 当你需要实现一个简答的语言时,使用解释器 2. 当你有一个简单的语法,切简单比效率更重要时,使用解释器 3. 可以处理脚本语言和编程语言 典型例子:正则表达式

6中介者模式

优点: 1. 通过将对象彼此解耦,可以增加对象的复用性。 2. 通过将控制逻辑集中,可以简化系统维护 3. 可以让对象之间传递的消息变得简单而且大幅减少 缺点: 1. 如果设计不当,中介者对象本身会变得过于复杂 用途: 常常被用来协调相关的GUI组件(HF设计模式上的原话,这书附录A部分真的有点敷衍) 经典例子: 我租房,但没有户主信息,我和户主不能直接交替。没关系,中介者类有我和户主的信息,private我,private户主。而我和户主都认识中介者。我将信息传递给中介者,在我中调用中介者.获取信息()方法,中介者获取信息后,再由中介者传递给户主。

7备忘录模式

优点: 1. 将被存储的状态放在外面,不要和关键对象混在一起,可以帮助维护内聚 2. 保持关键对象的数据封装 3. 提供了容易实现的恢复能力 缺点: 1. 储存和恢复状态的过程可能相当耗时 用途 备忘录模式用于存储状态,在java中可以使用序列化。 经典例子: 游戏中途保存游戏,这时候可以调用保存当前状态方法,再读取的时候调用读取。Java序列化机制在这方面非常的方便。

8原型模式

优点: 1. 向客户隐藏制造新实例的复杂性 2. 提供让客户能够产生未知类型对象的选项 3. 在某些环境下,复制对象比新建对象更有效 缺点: 复制对象有时相当复杂 用途: 在一个复制的类层次中,当系统必须从其中的许多类型创建新对象时,可以考虑原型模式。 经典例子: 随便拿一个类,给这个类写一个克隆方法,复制当前对象。或者直接用反序列化。

9访问者模式

优点: 1. 允许你对组合结构加入新的操作,无需改变结构本身 2. 想要加入新的操作相对容易 3. 访问者所进行的操作,其代码是集中在一起的 缺点: 1. 会打破组合类的封装 2. 因为游走的功能牵涉其中,随意对组合结构的改变就更加困难。 用途:有比较稳定的数据结构,又有易于变化的算法的话,使用访问者模式就是比较合适的,因为访问者模式使得算法操作的增加变得容易。 经典场景:特么访问者模式和翻译器模式,一个看不懂,一个怎么也不想看,到时候要是让我说这两个模式,我就自认倒霉。

10简单工厂模式 优点: 工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的信息,决定究竟应该创建哪个具体类的对象.通过使用工厂类,外界可以从直接创建具体产品对象的尴尬局面摆脱出来,仅仅需要负责“消费”对象就可以了。而不必管这些对象究竟如何创建及如何组织的.明确了各自的职责和权利,有利于整个软件体系结构的优化。 缺点: 由于工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中;它所能创建的类只能是事先考虑到的,如果需要添加新的类,则就需要改变工厂类了。 当系统中的具体产品类不断增多时候,可能会出现要求工厂类根据不同条件创建不同实例的需求.这种对条件的判断和对具体产品类型的判断交错在一起,很难避免模块功能的蔓延,对系统的维护和扩展非常不利; 用途: 工厂类负责创建的对象比较少; 客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心; 由于简单工厂很容易违反高内聚责任分配原则,因此一般只在很简单的情况下应用。 经典例子:没啥好说的,这不是一个真正的设计模式

11策略模式 优点: 1. 提供了一种替代继承的方法,而且保持了继承的优点,比继承更独立(算法独立,可以任意扩展) 2. 避免程序使用多重条件转移语句,使系统更灵活,并易于扩展 3. 遵守大部分常用设计原则,高内聚,低耦合 缺点: 1. 每个具体策略类都会产生一个新类,所以会增加系统需要维护的类的数量。可以使用工厂方法来解决。 用途: 各个不同地区不同的纳税方法,HF中不同鸭子的方法。有多种鸭子,每个鸭子都有自己的行为,fly,quaak之类的。行为有行为类,继承同一接口实现不同操作,以此实现算法互换。

12装饰模式

优点: 1. 装饰模式与继承关系的目的都是要扩展对象的功能,但是装饰模式可以提供比继承更多的灵活性。 2. 通过使用不同的具体装饰类以及这些装饰类的排列组合,设计师可以创造出很多不同行为的组合。 3. 有着比继承更加灵活的特性 缺点: 由于使用装饰模式,可以比使用继承关系需要较少数目的类。使用较少的类,当然使设计比较易于进行。但是,在另一方面,使用装饰模式会产生比使用继承关系更多的对象。更多的对象会使得查错变得困难,特别是这些对象看上去都很相像。 用途: 当需要给一个类添加新的行为的时候,但基于开闭原则,就使用装饰模式。 经典例子: 我穿衣服使用draw()方法,在我穿好衣服后,我还打算再寄领带,而寄领带就是装饰类,我们可以把装饰类和对象(穿衣服类)继承于同一个接口,在装饰类的draw()方法中调用super.draw(),然后再在这个方法里加上自己的特征。

13代理模式

优点: 向客户端隐藏了访问某个对象的细节及复杂性;可以动态地调用一个对象中的方法,且无需实现固定的接口。 缺点:(个人见解切勿当真)总觉得代理者不够可靠,不能得到有效的保证,要是对象代理者在维护的时候,或者其他的做出了变动,对被代理的人来说可能带来损失。 使用场景: 1. 远程代理,可以隐藏一个对象存在于不同地址空间的事实 2. 虚拟代理,比如html页面刷新的图片,图片一张嘴下载后才能看就是通过虚拟代理来替代了真实的图片,此时代理存储了真实图片的路径和尺寸 3. 安全代理,用来控制真实对象的访问权限。一般用于对象应该有不同的访问权限的时候 4. 智能指引,当调用真实的对象时,代理处理另外一些事。 经典例子: 我玩wow,但又没有时间精力投入到里面,于是我请了个人来代练,代练的人和我都继承于玩家类。而代练者是认识我的,当代练的人开始刷副本的时候,调用代练者.刷副本()方法,此时他在这个方法中实际调用的是我.刷副本()。

相关文档
最新文档