专栏最后一期——在王者荣耀角度下分析面向对象程序设计B中23种设计模式之总结篇

各位关注本专栏的读者朋友们,感谢大家的关注! 

历时两个月,《23种设计模式在王者荣耀中的应用》专栏已经全部更新结束了。

在这个专栏创立的2个月的时间里,文章总共发表了25篇,总点击量达到了3w+;我也通过这个专栏结交到了许多志同道合的朋友。想当初我只想的是在学习《面向对象程序设计B》过程中对书上的代码与当下最火的手游——王者荣耀结合并做一些改进,发表到CSDN中作为学习笔记便于日后复习,真是没有想到一发表居然会收获如此巨大,实在是承蒙各位关照了。

这个专栏的编写,使我收获满满,每一篇的文章都是对书上的知识点、老师讲的重点、网上提供的创新点以及自己在改进代码过程中体会点的梳理总结。

在发表文章的这段时间里,恰巧赶上CSDN的“原力计划——第二季”鼓励原创作者的官方活动热潮,使我的文章能被更多的人看到:有的读者通过我的文章更加深刻地掌握了相关知识,也有的读者对文章的内容结构做了一些批评指正。非常感谢大家的关注支持,感谢CSDN每一期都给“小火箭”,同时也再一次感谢CSDN提供的这一平台

本文是《23种设计模式在王者荣耀中的应用》专栏的最后一期。
主要内容一个是对过去做一总结,另一个是对前几期相关知识中未涉及的内容在本文做一补充。

目录

1  专栏概述+总结

2  23种设计模式的分类

2.1  创建型模式

2.1.1  工厂方法模式

2.1.2  抽象工厂模式

2.1.3  生成器模式

2.1.4  原型模式

2.1.5  单件模式

2.2  行为型模式

2.2.1  责任链模式

2.2.2  命令模式

2.2.3  解释器模式

2.2.4  迭代器模式

2.2.5  中介者模式

2.2.6  备忘录模式

2.2.7  观察者模式

2.2.8  状态模式

2.2.9  策略模式

2.2.10 模板方法模式

2.2.11 访问者模式

2.3  结构型模式

2.3.1  适配器模式

2.3.2  组合模式

2.3.3  代理模式

2.3.4  享元模式

2.3.5  外观模式

2.3.6  桥接模式

2.3.7  装饰模式

3  专栏参考文献及声明

3.1  参考文献

3.2  声明


1  专栏概述+总结

       设计模式是从许多优秀的软件系统中总结出的、成功的、可复用的设计方案,已经被成功应用于许多系统的设计中,目前面向对象程序设计已经成为软件设计开发领域的主流,而学习使用设计模式无疑非常有助于软件开发人员使用面向对象语言开发出易维护、易扩展、易复用的代码。

《23种设计模式在王者荣耀中的应用》专栏已经对23种设计模式是怎样应用于王者荣耀这一手游中的已经分别做过详细探讨。

感兴趣的读者可以关注《23种设计模式在王者荣耀中的应用》专栏做进一步的阅读学习。
专栏地址链接:https://blog.csdn.net/it_charge/category_9842143.html

       理解23种设计模式不仅是要学习怎样在软件设计过程中使用好设计模式,更重要的是,通过学习设计模式深刻的理解面向对象的设计思想,以便更好的使用面向对象语言解决设计中的诸多问题。

       本专栏全部实例由笔者亲自编写改进完成,并在 jdk - 1.7 环境下编译通过。

        

可登录下载本专栏中的示例代码:
①CSDN下载地址链接:https://download.csdn.net/download/IT_charge/12321824
②百度网盘下载地址链接:https://pan.baidu.com/s/1bI_gUQIdD2lwWR9JJE6oNQ
                             提取码:eeyc

注:本专栏示例代码及相关内容仅供学习JAVA设计模式使用,不得以任何方式抄袭出版。

本专栏中每种设计模式均使用了类图,所以本专栏也有对UML(统一建模语言)的简单介绍。

可点击链接查看我的博文:一句话解释UML中的四种关系+总结

2  23种设计模式的分类

       GOF总结出的23个设计模式在本专栏中加以改进扩展,目的是结合当下最火手游——王者荣耀便于理解模式和面向对象的设计思想,以及模式的使用频率等方面。

       GOF考虑到软件设计人员可能会不断发现新的设计模式,因此有必要将设计模式进行分类。这不仅方便软件设计人员的交流,也有利于人们总结一些模式的共同点。

       GOF根据设计模式的目标,将模式分成三个类目:创建型行为型结构型

2.1  创建型模式

       创建型模式涉及对象的实例化,这些模式的特点是,不让用户代码依赖于对象的创建或排列方式,避免用户直接使用new运算服务创建对象。

       其中有5个模式属于创建型模式

2.1.1  工厂方法模式

工厂方法模式
       定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。
Factory Method Pattern
       Define an interface for creating objects, and let subclasses decide which class to instantiate. Factory method delays the instantiation of a class to its subclasses.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之工厂方法模式

2.1.2  抽象工厂模式

抽象工厂模式
       提供一个创建一系列或相互依赖对象的接口,而无需指定它们具体的类。
Abstract Factory Pattern
       Provides an interface to create a series of or interdependent objects without specifying their specific classes.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之抽象工厂模式

2.1.3  生成器模式

生成器模式
       将一个复杂对象的构建与它的表示分离,使同样的构建过程可以创建不同的表示。
Builder Pattern
       
Separate the construction of a complex object from its representation, so that the same construction process can create different representations.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之生成器模式

2.1.4  原型模式

原型模式
       用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。
Prototype Pattern
       Use prototype instances to specify the kind of objects to create, and create new objects by copying these prototypes.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之原型模式

2.1.5  单件模式

单件模式
       保证一个类有一个实例,并提供一个访问他的全局访问点。
Singleton Pattern
        Ensure that a class has an instance, and provide a global access point to access it.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之单件模式

2.2  行为型模式

       行为模式涉及怎样合理的设计对象间的交互通信,以及怎样合理为对象分配职责,让设计富有弹性、易维护、易复用。

       其中有11个模式属于行为型模式

2.2.1  责任链模式

责任链模式
       使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止 。   
Responsibility Pattern 
       So that multiple objects have the opportunity to process the request, so as to avoid the coupling relationship between the sender and receiver of the request, connect these objects into a chain, and pass the request along the chain until one object processes it.  

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之责任链模式

2.2.2  命令模式

命令模式
       将一个请求封装为一个对象,从而使用户可用不同的请求对客户参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
Command Pattern
       
Encapsulating a request as an object enables users to parameterize different requests to customers; queue or log requests; and support revocable operations.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之命令模式

2.2.3  解释器模式

解释器模式
       给定一个语言,定义他的文法的一种表示并定义一个解释器,这个解释器使用该表是来解释语言中的句子。
Interpreter Pattern
       Given a language, define a representation of its grammar and define an interpreter that uses the table to interpret the sentences in the language.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之解释器模式

2.2.4  迭代器模式

迭代器模式
       提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。
Iterator Pattern
       Provides a way to access elements of an aggregate object sequentially without exposing the internal representation of the object.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之迭代器模式

2.2.5  中介者模式

中介者模式
       用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互。
Mediator Pattern
       A mediation object is used to encapsulate a series of object interactions. Mediators make objects refer to each other without display, so that they are loosely coupled and can independently change their interactions.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之中介者模式

2.2.6  备忘录模式

备忘录模式
       在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将该对象恢复到原先保存的状态。
Memento Pattern
       Without destroying encapsulation, capture the internal state of an object and save the state outside the object, so that the object can be restored to the original saved state later.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之备忘录模式

2.2.7  观察者模式

观察者模式
       定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖他的对象都得到通知并被自动更新。
Observer Pattern
       Defines a one to many dependency between objects. When the state of an object changes, all objects that depend on it are notified and automatically updated.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之观察者模式

2.2.8  状态模式

状态模式
       允许一个对象在其内部状态改变时改变他的行为,对象看起来似乎修改了它的类。
State Pattern
       Allows an object to change its behavior when its internal state changes, and the object appears to modify its class.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之状态模式

2.2.9  策略模式

策略模式
       定义一系列算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法独立于使用它的客户而变化。
Strategy Pattern
       Define a series of algorithms, encapsulate them one by one, and make them interchangeable. This pattern makes the algorithm independent of the customers who use it.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之策略模式

2.2.10 模板方法模式

模板方法模式
        定义一个操作中算法的骨架,而将一些步骤延迟到子类中。模板方法使子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
Template Method Pattern
        Define the skeleton of the algorithm in an operation, and delay some steps to the subclass. The template method allows subclasses to redefine certain steps of an algorithm without changing the structure of the algorithm.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之模板方法模式    

2.2.11 访问者模式

访问者模式
        表示一个作用于某对象结构中的各个元素的操作。它可以在不改变各个元素的类的前提下定义作用于这些元素的新操作。
Visitor Pattern
        Represents an operation that acts on elements in an object structure. It can define new operations on each element without changing its class.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之访问者模式

2.3  结构型模式

        结构型模式涉及如何组合类和对象已形成更大的结构,和类有关的结构型模式涉及如何合理的使用继承机制;和对象有关的结构型模式涉及如何合理地使用对象组合机制。

        其中有7个模式属于结构型模式

2.3.1  适配器模式

适配器模式
       将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
Adapter Pattern
       Convert the interface of one class to another that the customer wants. The adapter pattern enables classes that would otherwise not work together due to incompatible interfaces to work together.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之适配器模式

2.3.2  组合模式

组合模式
       将对象组合成树形结构一表示“部分-整体”的层次结构。Composite使用户对单个对象和组合对象的使用具有一致性。
Composite Pattern
        The objects are combined into a tree structure that represents a "part whole" hierarchy. Composite enables users to use single and composite objects consistently.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之组合模式

2.3.3  代理模式

代理模式
       为其他对象提供一种代理以控制对这个对象的访问。
Proxy Pattern
        Provides a proxy for other objects to control access to this object.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之代理模式

2.3.4  享元模式

享元模式
       运用共享技术有效的支持大量细粒度的对象。
Flyweight Pattern
       
Using sharing technology to effectively support a large number of fine-grained objects.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之享元模式

2.3.5  外观模式

外观模式
       为系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
Facade Pattern
        To provide a consistent interface for a group of interfaces in the system, the facade pattern defines a high-level interface, which makes this subsystem easier to use.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之外观模式

2.3.6  桥接模式

桥接模式
       将抽象部分与它的实现部分分离,使他们都可以独立的变化。
Bridge Pattern
       Separate the abstract part from its implementation part so that they can all change independently.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之桥接模式

2.3.7  装饰模式

装饰模式
        动态地给对象添加一些额外的职责。就功能来说装饰模式相比生成子类更为灵活。
Decorator Pattern
         Add some additional responsibilities to the object dynamically. In terms of function, decoration mode is more flexible than subclass generation.

文章链接:在王者荣耀角度下分析面向对象程序设计B中23种设计模式之装饰模式

3  专栏参考文献及声明

3.1  参考文献

1  Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software[M]. Reading, MA: Addison-Wesley, 1994.

2  耿详义, 张跃平 著. JAVA设计模式[M]. 北京: 清华大学出版社, 2009.

3  腾讯天美工作室群 著. 天美官方艺术典藏[M]. 北京: 人民美术出版社, 2017. 

4  (印度)Kamalmeet Singh, (荷兰)Adrian Ianculescu, (罗马尼亚)Lucian-Paul Torje 著, 张小坤, 黄凯, 贺涛 译. Java设计模式及实践[M]. 北京: 机械工业出版社, 2019. 

5  妙乌 著, 从王者荣耀看设计模式[OL]. 博客园, 2020. 

6  王者荣耀官方网站: https://pvp.qq.com/

3.2  声明

 本专栏示例代码及相关内容仅发表于CSDN,仅供学习JAVA设计模式使用,不得以任何方式抄袭出版。

 版权声明:本专栏全部为CSDN博主「荣仔!最靓的仔!」的原创文章,遵循 CC 4.0 BY-SA 版权协议。
                       转载请附上原文出处链接及本声明。

设计模式资源参考网站:https://hillside.net/

CSDN博主「荣仔!最靓的仔!」的其他原创专栏链接:
《机器学习》学习笔记专栏:https://blog.csdn.net/it_charge/category_9920949.html 
《数字图像处理》学习笔记专栏:https://blog.csdn.net/it_charge/category_9899861.html 
《Python网络数据爬取及分析》专栏:https://blog.csdn.net/it_charge/category_10097766.html

博主B站地址:https://space.bilibili.com/386691571


感谢阅读 ! 感谢支持 !  感谢关注 !

希望本专栏能对读者学习和使用设计模式有所帮助,并请读者批评指正!

2020年4月底于山西大同

END

  • 39
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 37
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荣仔!最靓的仔!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值