热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

设计模式学习之一:设计模式的设计原则

之前对设计模式有一些简单的了解,对设计模式中的工厂模式,抽象工厂模式,单例模式也用了不少,但一直以来没有系统的学习过设计模式

  之前对设计模式有一些简单的了解,对设计模式中的工厂模式,抽象工厂模式,单例模式也用了不少,但一直以来没有系统的学习过设计模式,所以从今天开始,准备系统的学习一下设计模式,学习的途径就是Head First这本书。

  今天的这篇文章主要是设计模式中的设计原则,这些设计原则也是设计模式的精髓,如果能掌握这些设计原则并加以实际应用,对个人的设计模式的学习和系统架构设计将会有很大的帮助!

  下面是书中的设计原则!

1 找出应用中可能需要变化之处,把他们独立出来,不要和那些需要变化的代码混在一起。

  个人心得:把需要变化的部分抽取出来并封装起来,以免以后代码发生变化的时候,其他不经常变的地方受到影响!但这个原则的难点在于如果把需要变化的部分抽取出来,更加直接的问题就是怎么区分需要变化和不需要变化的部分,在什么阶段分离并封装?

  我们在设计系统时肯定需要尽可能的预见系统中可能会发生变化的地方,然后分离并封装起来,但是很多时候,我们在设计之初,无法确定系统的哪些地方是经常变化的,哪些地方是不易发生变化的,所以在整个系统开发阶段,我们需要不断的分析,确定出哪些经常发生变化,然后分离并封装起来。

  我个人在设计系统架构时,很少对于整个系统采用某种架构或者某种模式,但系统中的很多业务模块却经常会利用某些设计模式或架构(不过用的最多的还是单例模式、工厂模式、抽象工厂模式)。

以上是个人对设计模式的设计原则的理解,有理解不正确之处,希望大侠们能不吝赐教!

本文将持续更新...

 

 

转:https://www.cnblogs.com/Geodon/archive/2013/05/03/3056680.html



推荐阅读
  • 本文介绍了在一卡通项目中设计加密管理方案时,证书服务器的配置步骤及其在用户权限控制中的应用。首先概述了证书服务器的基本设置,包括操作系统的选择和证书服务的安装,随后详细描述了服务器证书及客户端证书的创建过程。 ... [详细]
  • 探讨了一个关于是否应该继续深造或直接步入职场的讨论帖,虽然时间久远,但其内容依然具有参考价值。 ... [详细]
  • 本文探讨了在渗透测试中信息收集阶段使用的几种端口扫描技术,包括nmap、masscan、socket、telnet及nc等工具的应用与比较。 ... [详细]
  • 本文介绍了如何使用Direct3D API中的D3DSURFACE_DESC结构来获取纹理的具体尺寸信息,包括宽度和高度。通过调用GetLevelDesc方法,可以轻松获取这些关键参数。 ... [详细]
  • Facebook PrestoDB 配置指南
    本指南详细介绍了如何安装和配置 Facebook PrestoDB,包括必要的文件设置和启动方法。 ... [详细]
  • 本次竞赛包含三个编程题目,旨在考察参赛者对数学逻辑及时间处理的能力。题目涉及筛选特定条件下的数字、Unix时间戳转换以及数列中元素关系的分析。 ... [详细]
  • 本文深入探讨了 Prototype.js 框架及其与 JavaScript 原生 toString() 方法之间的区别,适合对前端开发感兴趣的开发者阅读。文章将帮助读者理解两者在功能实现和应用场景上的不同,从而更好地利用这些工具进行高效编程。 ... [详细]
  • 博主从零开始学习HTML(入门基础)
    从零开始学习HTML(入门基础)互联网三大基石HTTP协议URL:统一资源定位符HTML:超文本标记语言HTML的Head标签中的常用元素<!--告知 ... [详细]
  • 实现HTML表格中的斜线效果
    本文记录了一种使用CSS实现HTML表格中斜线的方法,适合开发者在需要时快速参考和应用。 ... [详细]
  • 本文介绍了如何在C++中使用new关键字动态创建一维和二维数组,并详细解释了常见的错误及其解决方案。 ... [详细]
  • SQL执行计划解析(2) 基本查询的图形执行计划
    SQL执行计划解析(2)-基本查询的图形执行计划(上)某种程度上,学习阅读图形执行计划和学习一门新语言很类似。 ... [详细]
  • 次表面散射技术演示
    本项目使用OpenGL和GLSL编程语言,在一台配置为1.8GHz CPU、1GB内存及NVIDIA Quadro NVS 135M显卡的笔记本电脑上实现次表面散射效果。以下是部分效果图。 ... [详细]
  • iOS应用中实现文件共享与打开功能
    本文详细介绍了如何在iOS应用中配置文件类型支持,使得应用能够识别并打开特定类型的文件,包括文档、图片、音频和视频等。 ... [详细]
  • Flex 截图 实例 ... [详细]
  • 构建高性能Feed流系统的设计指南
    随着移动互联网的发展,Feed流系统成为了众多社交应用的核心组成部分。本文将深入探讨如何设计一个高效、稳定的Feed流系统,涵盖从基础架构到高级特性的各个方面。 ... [详细]
author-avatar
缘无音iy
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有