《设计模式之禅》一书学习心得(连载中)

前言:最近,总感觉之前写的代码不是很好维护,追究原因,还是设计模式没学好,导致很多代码冗余和思绪不连贯,现在才发现问题,重构就会变得很麻烦。所以,下定决心好好学习设计模式,以便今后能更好地设计代码!感谢百度让我找到这本书,也感谢这本书的作者。希望有个愉快的学习过程!

1、总体上了解了设计模式的六大原则:单一职责原则,里氏替换原则,依赖倒置原则,接口隔离原则,迪米特法则,开闭原则。

  设计模式的23种模式,主要分为

时间: 2024-10-21 22:36:07

《设计模式之禅》一书学习心得(连载中)的相关文章

设计模式之禅单一职责原则

个人blog 此篇博文地址 :http://www.sanyinchenblog.com/?p=150 最近在看<<设计模式之禅>>感觉这本书很是不错的,demo虽然简单但是确实很明了,感觉很有必要自己再敲一遍 单一职责原则 demo: https://github.com/sanyinchen/UMLDemo 如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责.而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因. demo:一个手机类:Iphone.需要用

设计模式之禅笔记下部

这是我看的第一本设计模式,由于觉得个人代码量不多,一直没有看,现在也只是了解为主,平时稍加注意,过一两年再详细研究.由于本人粗心大意,写在word里没有保存我就重装系统...这里只记下了下半部分. <设计模式之禅>这本书,讲的还是比较浅显易懂,这种java这种强类型语言,讲究封装和继承,用于讲解设计模式再合适不过了.例子引入对于初学者而言还是挺不错的,可惜后文讲解有点流于表面了.下面我就贴出笔记. 笔记 #装饰模式(Decorator Pattern) 动态的给一个对象添加职责,就增加功能来说

读秦小波《设计模式之禅》 -- 工厂模式

设计模式是一种非常有用的编程技巧,它对于代码的重构有些非常重要的作用,对于软件开发人员来说,需要理解并尝试着使用这些设计的方法. 个人感觉<设计模式之禅>这本书中讲解的非常具体,每个模式都配以适当的例子,非常适合学习设计模式的初学者,当然,程杰的<大话设计模式>也是非常好的一本书,都可以拿过来当做一本工具书随时查看理解设计的奥妙. 工厂模式 这个模式的名字就已经告诉了我们它想要做什么,就是让我们构造出一个工厂,然后生产我们需要的东西,即生成对象.那么,为什么要构造一个工厂呢,为什么

设计对象的一些基本原则(学习自设计模式之禅)

1.单一职责原则(srp):就是设计一个对象,对象的职责要单一. 比如设计用户类,将用户的行为和用户的属性分成两个接口,继承的方式设计类. 还有一个srp的解释是:there is no more than one reason for a class to change 但srp的原则有可能把握的过细,导致类太散.所以也不可以走极端. 2.里式替换原则:代码中使用父类的地方都可以用他的子类来代替. 个人理解,子类里有全部的父类的方法(继承来的或者重载过了),若重载了方法,实现的逻辑肯定和父类不

读秦小波老师《设计模式之禅》问一-依赖倒置原则

这本<设计模式之禅>得来不易,当时是在CSDN的论坛中向秦小波老师提问有幸获得的.读这种经典书籍不能如读小说,逛十里洋场意在消遣,更多的应该是边读变问,每到重点就应该问为什么.秦小波老师的语言有时幽默,有时又切中要害,引人深思.对于"倒置"秦小波老师是从人的思维层面解读的,生活中,例如张三就依赖他家的宝马上下班,也许可以更具体到BMW 740Li,然后回归到程序中,如果我们这样去构建依赖关系,那么如果哪天张三发达了,换了玛莎拉蒂,那是不是整个程序都得改,这个时候我们可以让张

设计模式之禅之单例模式

转载:http://www.javaweb1024.com/java/Javajichu/2015/04/09/535.html 设计模式之禅 第一第二版下载地址 http://www.javaweb1024.com/info/403.jspx 第7章 单例模式 7.1 我是皇帝我独苗 自从秦始皇确立了皇帝这个位置以后,同一时期基本上就只有一个人孤零零地坐在这个位置.这种情况下臣民们也好处理,大家叩拜.谈论的时候只要提及皇帝,每个人都知道指的是谁,而不用在皇帝前面加上特定的称呼,如张皇帝.李皇帝

《设计模式之禅》--代理扩展:动态代理

接上篇<设计模式之禅>--代理扩展:强制代理 动态代理就是在实现阶段不用关心代理谁,而在运行阶段才指定代理哪一个对象.相对来说,自己写代理类的方式就是静态代理 面向切面编程(AOP)核心就是采用了动态代理机制 public interface Subject { //业务操作 public void doSomething(String str); } public class RealSubject implements Subject { //业务操作 public void doSome

《设计模式之禅》--策略扩展:策略枚举

接上篇<设计模式之禅>--代理扩展:动态代理 需求:加减法计算 public enum Calculator { //加法运算 ADD("+") { public int exec(int a, int b) { return a + b; } }, //减法运算 SUB("-") { public int exec(int a, int b) { return a - b; } }; String value = ""; //定义成

《设计模式之禅》--备忘录扩展:clone方式的备忘录

接上篇<设计模式之禅>--策略扩展:策略枚举 需求:使用clone方式实现备忘录模式 发起人角色 public class Originator implements Cloneable { //内部状态 private String state = ""; public String getState() { return state; } public void setState(String state) { this.state = state; } //创建一个备