透视软件设计原则与本质.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
透视软件设计原则与本质

透视软件设计原则与本质 [分享概要] 面对纷繁复杂的软件系统,如何利用设计原则和模式提炼出解决方案?是从软件设计中寻找普遍存在的规律,还是透过设计看本质,利用本质的思想与原则来指导我们的设计?学习设计模式,如何才能做到既不流于内容空泛的理论堆砌,又不至于陷入细节的泥沼,一叶障目,以偏概全,失去把握设计脉络的大局观。本次课程通过阅读大师作品,解析JUnit和NHibernate等著名开源框架,以及.NET框架和JDK API,通过理论指导实践,通过实践抽象理论,对软件设计进行一次提炼与升华,是思想、原则与模式的大碰撞。七种武器迭出,助你劈荆斩棘,越过迷雾透晓设计本质。 课程大纲: 提纲 武器一:复用(Reusability) 代码的坏味道——解决方案蔓延 DRY原则 复用的方式——继承与组合 对象的粒度——迪米特法则 合理的封装 保持对象的高内聚 模式参考 - 简单工厂模式 - 原型模式 - 代理模式 - 门面模式 - 模板方法模式 阅读大师作品: JUnit中对异常的重用 JUnit中的Assert断言 - ASP.NET MVC中的Copy Constructor - 泛型工厂类 武器二: 扩展(Extensibility) 如何实现扩展 - 利用继承实现扩展 - 利用组合实现扩展 - 利用继承与组合实现扩展 - 利用抽象实现扩展 模式参考 - 装饰器模式 - 访问者模式 - 策略模式 - 命令模式 - 状态模式 - 职责链模式 - 观察者模式 阅读大师作品 - JDK中线程的运用 - .NET中对文件流的处理 武器三:分离(Separation) 职责分离 分离与抽象、依赖的解耦 分离体现的设计原则 - 单一职责原则 - 接口隔离原则 - 合成/聚合复用原则 对象的职责 - 如何定义职责 - 如何分解职责 - 如何抽象职责 分离的目标 - 分离变与不变 - 分离接口与实现 - 分离数据与行为 模式参考 - 工厂方法模式 - 建造者模式 - 桥接模式 - 迭代器模式 - MVC模式 - 分层架构模式 阅读大师作品 - JUnit中的职责委派 - JDK中对日志的处理 - RuleParser 武器四:变化(Change) 封装变化 - 封装创建的变化 - 封装结构的变化 - 封装行为的变化 应对变化应遵循的原则 - 开放封闭原则 - 依赖倒置原则 解除具体依赖 - 配置文件与反射 - 表驱动法 - 依赖注入 - 惯例优于配置 隔离变化 - 通过分离隔离变化 - 通过抽象隔离变化 - 利用依赖注入隔离变化 模式参考 - 工厂方法模式 - 抽象工厂模式 - 装饰器模式 - 策略模式 - 命令模式 阅读大师作品 - NHibernate中对延迟加载的支持 - JUnit中的TestListener 武器五:简约(Simplicity) 极限编程的KISS原则 根据场景驱动设计 避免设计过度 如何实现简约 - 封装有利于简约:职责的封装 - 继承有利于简约:职责的复用 - 多态有利于简约:职责的委派 简约的本质:简单+优雅 重构和精益求精 如何考量简约 - 可复用性 - 可扩展性 - 可测试性 - 可读性 模式参考 - 门面模式 - 调停者模式 - 适配器模式 - 入口模式 阅读大师作品 - JDBC中的DataSource - NHibernate中的SessionFactory和Configuration - LINQ中的DataContext 武器六:一致(Coherence) 软件结构的和谐与平衡 体现一致的方式 - 接口的一致——对于实现可替换 - 形式的一致——窥一斑而知全豹 - 调用的一致——客户可透明访问 - 解决方案的一致——团队合作的基石 惯例优于配置 Liskov替换原则 模式参考 - 适配器模式 - 合成模式 - 代理模式 - 门面模式 - 单例模式 - 空对象模式 阅读大师作品 - JUnit中的TestCase和TestSuit - WCF的Endpoint 武器七:一致(Coherence) 以迂为直的设计思想 如何实现间接 - 职责的委派 - 职责的封装 - 职责的抽象 间接的目的 - 降低耦合 - 化繁为简 - 隐藏细节 模式参考 - 门面模式 - 代理模式 - 调停者模式 - 入口模式 - 资源库模式 - 分层架构模式 阅读大师作品 - .NET Remoting的客户端激活

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档