日期:2014-05-20  浏览次数:21011 次

抓住模式的本质,我对设计模式的认识,和朋友交流
前言:希望用自己的语言来阐述模式,并记下个人认为是学习的核心的地方, 很多不足,请朋友们完善指正

一,门面模式:
  模式的引入:买股票和买基金
  【部分引用-大话设计模式】小张 有 10 支股票,他要关注每支股票的买入,卖出,每支股票都要买入,卖出,够费神的啦, 一天,小张听从了朋友的建议,不做股票了,做基金, 小张只需关注一支基金的买入卖出,由基金来对这10支股票买入卖出,小张感觉到轻松多了
 
  上面的例子是门面模式的体现, 个人的理解如下:
  1. 该模式需引入 第三方的 类(门面)
  2. 门面类的作用是: 封装子系统的一组接口,用户通过调用门面类来操作子系统, 为用户提供了方便
  3. 调用者需要使用子系统的一组接口,而非一个接口,这是门面的核心所在,既接口的再封装,通过门面类的一个接口操作子系统的多个接口

  该模式的典型体现:
  MVC 架构中, 层与层之间的交互?

------解决方案--------------------
楼主的学习方式值得推荐。

相同的技术,对于不同的人有不同的理解方式,只要被自己所接受,就是好的学习方式。

继续努力。
------解决方案--------------------
感觉这两种模式在抽象工厂模式中都包括了:
1.门面模式中的门面类--抽象工厂模式中的抽象产品,提供实体产品的访问接口,避免用户直接接触实体产品.
2.模板模式中的模板类--抽象工厂模式中的抽象工厂类,共同方法为实例化抽象工厂方法,可以直接实现.获得实体产品方法为具体方法,应定义为抽象方法,由子类实体工厂来实现.
------解决方案--------------------
http://www.riabook.cn/doc/designpattern/
程式设计是思维具体化的一种方式,是思考如何解决问题的过程,设计模式是在解决问题的过程中,一些良好思路的经验集成............................................
------解决方案--------------------
我个人认为设计模式的核心就是封装变化点。如果能很好的封装变化点提高系统应对需求变化的能力就行。
------解决方案--------------------
目前我就理解这么多, 欢迎交流 QQ:30672255:
1: 理解面向对象的分析概念(算法, 数据, 算法加数据 都可以是对象).
2: 分析各个对象之间的交互规则, 即对象之间的接口.(接口也可以理解为客户对象对服务对象制定的通信规则)
3: 把需求中可变和可不变因素列出来.
4: 根据设计模式的原则, 重新划分接口的粒度. 这个过程要参考各种设计模式的原型.
5: 在一定范围内参考设计模式, 把握住设计模式的原则是最重要的.


 


------解决方案--------------------
不错,
大部分功能,单纯的顺序执行也是可行。
模式就是将代码优化组合的一种形式。
门面,装饰者,观察者,单例,工厂,享元。。等,在很多地方作用都很突出。