??xml version="1.0" encoding="utf-8" standalone="yes"?>辽宁快乐12开奖结果:BlogJava - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/专注于Java技?/description>zh-cnWed, 19 Dec 2018 19:51:05 GMTWed, 19 Dec 2018 19:51:05 GMT60Head First设计模式读书笔记 - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/zhuyuanxiang/archive/2018/12/19/433551.html朱远?/dc:creator>朱远?/author>Wed, 19 Dec 2018 02:22:00 GMT//www.ot7t.com.cn/zhuyuanxiang/archive/2018/12/19/433551.html//www.ot7t.com.cn/zhuyuanxiang/comments/433551.html//www.ot7t.com.cn/zhuyuanxiang/archive/2018/12/19/433551.html#Feedback0//www.ot7t.com.cn/zhuyuanxiang/comments/commentRss/433551.html//www.ot7t.com.cn/zhuyuanxiang/services/trackbacks/433551.html阅读指南?/p>

精读一章内容,手工输入一章代码(?),与书中描述的思想进行印证,实在搞不懂就放过吧。设计模式绝对不会一次就看懂的?/p>

这本书对于理解设计模式很有帮助,就是例子不太符合中国人的思维模式,但是坚持下去肯定会搞明白的?/p>

全书精华?/p>

1. Chap12的Ducks,通过一点点重构Ducks程序,将模式一个个加入其中,帮助对模式的深入理解?/p>

2. Chap12的DJView,通过一个完整的MVC程序,将Observer、Strategy、Composite以及Adapter模式用架构层面的设计整合起来,不仅可以更好地理解单个模式,还可以理解MVC模式?/p>

尽可能对每个模式写出自己的总结

  1. Strategy(策略模式):定义一组算法类,用于运行过程中替换算法?
    • 封装变化
    • 多用组合,少用继?
    • 多针对接口编程,少针对实现编?/li>
  2. Observer(观察者模式):定义一个主题和一组观察者,可以在主题变化时通知订阅了主题的观察者?
    • Strategy封装的是函数调用的算法?
    • Observer封装的是传递数据的内容?
    • 交互对象之间强内聚、松耦合?/li>
  3. Decorator(装饰模式):本质不变,外面增加一层层装饰。例如:Stream的包装?
    • 设计的类,禁止修改,允许扩展?
    • 不采用继承的方式来扩展功能?/li>
  4. Factory(工厂模式):所有的工厂都是用来封装对象的创建?
    • Simple Factory(简单工厂):将业务逻辑与对象创建操作分离开?
    • Factory Method(工厂方法):把对象的创建工作委托给子类的工厂方法?
    • Abstract Factory(抽象工厂):把对象的创建工作委托给实现了接口的工厂方法?
    • 依赖于抽象,而不依赖于具体的类?/li>
  5. Singleton(单例模式):通过禁止其他对象对自己实例化,而改由自己的静态方法对自己实例化,确保一个类只有一个对象?
  6. Command(命令模式):解耦调用者与执行者之间的关系,相互之间的联系通过命令对象完成,调用者只对调用对象的execute()方法发出请求?
  7. 改造已有系统接口,使异构系统也可透明地相互调用?
    • Adapter(适配器):将一个类的接口转换成客户期望的另一个接口。例:数据库连接
    • Facade(门面模式):将一组接口转换成客户期望的单一接口。例:设备驱动程?
    • 最小知识原则:调用其他方法时,涉及的对象越少越好?
      • 对象调用自己的方?
      • 对象调用作为参数传入的对象的方法
      • 对象调用自己的方法创建的对象或实例的方法
        • (以上三点强调:不要调用其他方法返回的对象的方法?/li>
      • 对象调用自身组件的方?/li>
  8. Template(模板模式):封装算法,在一个方法中定义一个算法的框架,而将具体的实现委托给子类。框架中调用的方法为钩子,从而超类控制一切,子类实现钩子等待超类调用?
    • 好莱坞原则:别找我,我会去找你?/li>
  9. Collections(集合)?
    • Iterator(迭代器):遍历集合而无须暴露集合的实现
    • Composite(组合模式):可以将对象的集合和单个对象组合在一起?
    • 类应该只有一个改变的理由?/li>
  10. State(状态模式):将状态封闭为对象,将行为封装成方法;新的状态生成新对象,新的行为生成新的方法?
    • 行为不变,状态改变用State
    • 行为改变,状态不变用Strategy
  11. Proxy(代理模式):采用创建代理对象的方式控制客户端对具体对象的访问?
    • 远程代理管理客户端和远程对象之间的交互;
    • 虚拟代理控制实例化开销大的对象?
    • 保护代理控制客户端对具体对象的访问?/li>
  12. Compound(复合模式):MVC-Model,View,Controller
    • Model与View之间使用Observer模式。Model是Subject,View是Observer,当Model改变时通知View发生改变。View只从Model中获取数据(例如:调用Model的getXXX()方法),不修改Model的数据(例如:不调用Model的SetXXX()方法),不操作Model的行为(例如:不调用Model的行为方法)?
    • Controller与View之间是Strategy模式。View只对Controller的接口编程,不与具体的Controller实现耦合,从而可以面对不同的Controller实现不同的行为?
    • View自身使用Composite模式?
    • 还可以使用Adapter模式,使已经存在的Controller和View与Model适配?/li>

注:

1. 源代码一定要去下载,书上的代码内容不够,也可以参考我的代码?/p>

]]>
读过的设计模式的书小?/title><link>//www.ot7t.com.cn/zhuyuanxiang/archive/2018/12/18/433550.html</link><dc:creator>朱远?/dc:creator><author>朱远?/author><pubDate>Tue, 18 Dec 2018 01:31:00 GMT</pubDate><guid>//www.ot7t.com.cn/zhuyuanxiang/archive/2018/12/18/433550.html</guid><wfw:comment>//www.ot7t.com.cn/zhuyuanxiang/comments/433550.html</wfw:comment><comments>//www.ot7t.com.cn/zhuyuanxiang/archive/2018/12/18/433550.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.ot7t.com.cn/zhuyuanxiang/comments/commentRss/433550.html</wfw:commentRss><trackback:ping>//www.ot7t.com.cn/zhuyuanxiang/services/trackbacks/433550.html</trackback:ping><description><![CDATA[<p>《设计模式:可复用面向对象软件基础?/p> <p>这本书还没看完,但是绝对是案头必备,虽然用C++写的代码,并且是四个牛人写的风格(相关知识背景与程序员不同),但是一旦开始理解设计模式以后,再回过头会发现这本书的定义和描述最容易理解和记忆?/p> <p>《Head First设计模式?/p> <p>自学、初学的推荐用书。我也是通过这本书才真正明白设计模式。虽然,GoF提出?3个模式,但是,只要把主要几个搞明白了,就算入门了,其他的模式只有真正实践的时候才会需要,否则看了也就是了解一下?/p> <p>《Java与模式?/p> <p>十年前,我绝对认为是本好书。因为那个时候可以参考的中国人写的设计模式的书实在太少,但是现在我对这本书的评价只能算可以了。因为作者的举例跟我的项目经验没有重叠,作者对古典文学的运用反而又给我理解设计模式增加了困难,因此这本书不再作为我推荐的书,只作为看完《Head First设计模式》后的补充阅读,并且不需要太关注书中的代码和那些文学描述,只看作者关于模式与实际应用的描述就可以了?/p> <p>《设计模式解析?/p> <p>这本书不推荐。除非你有过一些设计模式的理解,并且还有实际项目的设计经验,否则这本书对初学的帮助不是很大。我的感觉作者应该是用来作为自己上课的教材,因此这本书除非可以跟着作者边学边读,否则自学会觉得只讲了些理念上的东西,能够帮助理解模式的项目或者代码是不足的?/p> <p>《设计模式初学者指南?/p> <p>第三次放弃读这本书,主要是对我不太实用,而且作者的思路也与我不同,读起来不太顺畅。每次重读个几次才明白作者想表达什么,作者是个好程序员,写的代码也非常漂亮,只是比较关注细节和自我实现过程中的理解,对于经常写代码的Java程序员可能帮助会更多些,对于只是想了解概念和思路就显得有点啰嗦了?/p> <p> </p> <p>补充:理解设计模式最好的方法就是项目与代码,并且在不断地重构项目和代码中加深理解。对于别的什么例子,看起来似乎对理解有帮助,但是听多了只会更加糊涂?/p><img src ="//www.ot7t.com.cn/zhuyuanxiang/aggbug/433550.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.ot7t.com.cn/zhuyuanxiang/" target="_blank">朱远?/a> 2018-12-18 09:31 <a href="//www.ot7t.com.cn/zhuyuanxiang/archive/2018/12/18/433550.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MAC系统每次启动Powerpoint都会自动打开两个PPT文件 - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/nkjava/archive/2018/11/27/433520.html草原上的骆驼草原上的骆驼Mon, 26 Nov 2018 20:46:00 GMT//www.ot7t.com.cn/nkjava/archive/2018/11/27/433520.html//www.ot7t.com.cn/nkjava/comments/433520.html//www.ot7t.com.cn/nkjava/archive/2018/11/27/433520.html#Feedback0//www.ot7t.com.cn/nkjava/comments/commentRss/433520.html//www.ot7t.com.cn/nkjava/services/trackbacks/433520.htmlMAC系统每次启动Powerpoint都会自动打开两个PPT文件,很烦人,一直没有找到解决方案。终于在官网打到,解决方式如下:

这个问题的话建议您尝?span style="box-sizing: inherit; border: 0px; margin: 0px; padding: 0px; vertical-align: top; -webkit-font-smoothing: antialiased; text-size-adjust: none; color: #333333;">打开finder(访达),按 shift+command+G,输?/span>

~/Library/Containers/com.microsoft.Powerpoint/Data/Library/Preferences/AutoRecovery/

或者打开终端,输?/span>

open ~/Library/Containers/com.microsoft.Powerpoint/Data/Library/Preferences/AutoRecovery/

?/span>后删除里面的文件即可?/span>

希望以上信息能够帮助到您?/span>



]]>