`

学习设计模式困惑

阅读更多
     最近学习设计模式,对于我只有几个月工作经验的菜鸟来讲,真的是很吃力。吃力的原因不是看不懂书中所写的设计模式代码,而是就是知道这样设计模式,我怎样才能在现实工作中使用它,所以感觉很困惑。
      就拿代理模式来讲吧,一共有三个角色,一个代理角色,一个真实角色,一个是前两者的共同接口角色。代理角色是拥有真实角色的引用,并且可以在调用真实角色的前后做一些访问控制等工作。真实角色也就是真正的实现我们想要做事情的角色,我们只能通过代理角色来访问它。共同接口角色,有了它,我们就可以通过代理访问真实角色行为,像真实访问真实角色一样。
     使用代理角色好处有,让真实角色做自己应该做的事情,一些访问控制等事情,可以交给代理角色处理,这样符合OO的SRP原则。当代理角色和真实角色实现相同接口代理的好处,这样客户端通过代理角色访问,就像真实访问真实角色一样。针对接口编程,一旦代理对象实现有变,也不会影响到客户端的代码,符合面向对象编程原则。
这些原理通过书本都能明白。哎,现在难就难在遇到问题,怎么样才能想到用这种设计模式去解决问题。
分享到:
评论

相关推荐

    深度学习的教学设计模式.pdf

    深度学习的教学设计模式是一系列旨在通过分析教学内容、设计教学活动,以促进学生深度思考和学习的教学策略。东北师范大学教授马云鹏提出,在深度学习模式中,首先需要确定学习单元,这个单元可以是教材中的一个单元...

    设计模式基础学习 各种软件设计模式

    ### 设计模式基础学习——构建面向对象软件的艺术 在软件工程领域,设计模式是一种用于解决常见问题的模板或指南,特别是在面向对象编程中。本文旨在深入探讨设计模式的基础概念及其在软件开发中的重要性,根据给定...

    C设计模式_程序设计.rar C设计模式_程序设计.rar

    《C设计模式_程序设计》这本资源集合,不仅为C语言程序员提供了一个学习和应用设计模式的平台,而且在软件开发领域具有重要的地位和作用。设计模式作为软件工程的核心组成部分,它能够帮助开发者以一种标准化和系统...

    设计模式精解-GoF 23种设计模式解析

    学习设计模式的过程可能会让人感到痛苦,尤其是在初读GoF的经典著作《设计模式:可复用面向对象软件的基础》时,面对大量抽象的概念和术语可能会感到困惑。然而,随着实践经验的积累,你会发现设计模式的强大之处,...

    设计模式精解-GoF 23种设计模式解析附C++实现源码

    学习设计模式并非易事。初学者可能会觉得抽象、难以理解。但随着实践的深入,逐渐能够领悟其背后的原理与价值。正如文中所述,“自己学会一门知识(技术)、表达出来、教会别人、记录下来”,这是学习任何复杂概念的...

    设计模式10大误解

    2. **困扰阶段**:开始接触设计模式,但由于缺乏经验而感到困惑。 3. **熟悉阶段**:逐渐熟悉设计模式,并能够在项目中正确地应用。 4. **受益阶段**:能够熟练运用设计模式,并从中获得实际的好处。 #### 六、总结...

    设计模式精解-GoF23种设计模式解析

    作者回顾了自己学习设计模式的过程,从最初的困惑和挑战到最终的领悟和应用,强调了实践的重要性。学习设计模式的过程不仅仅是理论上的理解,更是一种实践的过程,通过不断地实践才能真正掌握这些模式并将其应用于...

    设计模式(中文版)

    本书的初衷是将面向对象设计的经验提炼成设计模式,以便于后人学习与应用。每一个设计模式都被系统地命名、解释和评估,涵盖了面向对象系统中重要的、反复出现的设计问题。通过这种方式,设计经验得以记录并传承,...

    《设计模式》中文版1

    在描述中,作者强调了设计模式的重要性,指出有经验的设计师能够复用过去成功的解决方案,而新手往往在面对复杂的设计选择时感到困惑。设计模式就像小说中的剧情模式,如悲剧英雄或浪漫小说,它们是已知的结构,能够...

    软件设计模式

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决问题的成熟、可复用的解决方案。这些模式是经过时间和实践检验的最佳实践,旨在...通过学习和应用设计模式,开发者能够构建更加高效、可维护的软件系统。

    学习困惑,打开高中数学深度学习大门的一把钥匙.pdf

    然而,深度学习并不是自然而然发生的,它需要教师精心设计教学过程,特别是在学生遇到学习困惑时,这些困惑可以成为推动深度学习的契机。 【学习困惑】在数学学习中,是常见且正常的现象。学习困惑不仅仅是学生遇到...

    设计模式.可复用面向对象软件的基础

    ### 设计模式——可复用面向对象软件的基础 #### 一、引言 设计模式作为软件工程领域的一个重要分支,其核心目标在于提高软件的复用性和灵活性。面向对象编程(OOP)作为一种广泛采用的软件开发方法论,在设计时面临...

Global site tag (gtag.js) - Google Analytics