11 2023 档案
摘要:内容 今天学习了设计模式中的状态模式。 1.状态模式,当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 收获 1.如果软件中需要用很多枚举表示不同的状态,那么就可以采用状态模式,可以让代码变得更简单,新增状态时扩展性也会更好。 2.先抽象出所有状态的 基类 3.根据基类派生出
阅读全文
摘要:内容 今天学习了抽象工厂模式。 1.抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。 2.听起来有一些复杂,主要实现的功能就是在尽可能保证开放-封闭的原则下兼容具体的抽象动作。 3.最终可以采用 配置文件 + 反射 + 抽象工厂 来实现对抽象产品的设计,保证代码的开放
阅读全文
摘要:内容 今天学习了观察者模式。 1.观察者模式又叫发布-订阅模式。 2.观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生改变时,会通知所有观察者对象,使他们能够自动更新自己。 3.观察者模式所做的工作其实就是在接触耦合。让耦合的双方都依赖于抽象,而不
阅读全文
摘要:内容 今天学习了建造者模式。 1.建造者模式是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 2.简单来说就是一个类的所有的特性方法与这个类对象的构建分离 3.本来觉得有点类似于工厂模式,但细想又不太一样。工厂模式是创建一个类,这个类用来创新用户所关注的类对象,类的构建也
阅读全文
摘要:内容 今天学习了外观模式。 1.外观模式,为子系统中的一组接口提供了一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 2.起始很多现在的软件思路都是遵从于外观模式,它完美的依赖倒转原则和迪米特法则的思想。 3.软件编程采用三层架构,数据访问层、业务逻辑层,并将各个层之间
阅读全文
摘要:内容 今天学习了设计模式中的迪米特法则,如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。 收获 1.这个在软件编程中的应用还是挺多的。比如一系列对象需要进行管理,不要单独操作对象本身,而是设计一个管理者,
阅读全文
摘要:内容 今天学习了模板方法模式,模板是一种面向对象高级语言中常用的编程思想。 收获 1.模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 2.模板编程能大大提高代码的复用性,可以在寻找所有对象公共的方法,然后抽
阅读全文
摘要:内容 今天学习了设计模式中的原型模式。 收获 1.所谓的原型模式,就是省去了一个类对象构造及初始化的过程,通过在原有的类对象中设计一个clone的方法或者接口,来拷贝出一个新的类对象。 2.拷贝的时候要注意"深复制"和"浅复制"的问题。这个是老生常谈的话题。 感悟 1.原型模式主要是用在构建类对象比
阅读全文
摘要:内容 今天学习了工厂方法模式,之前也学习了简单工厂模式。工厂方法模式是对简单工厂模式的抽象和升级。 收获 1.工厂方法模式延续了简单工厂模式对复杂创建过程的封装的优点,同时克服了简单工厂违背开放-封闭原则的缺点。 2.采用了多态的思想,将具体需要创建的对象交给了上层来决定,从而不需要修改自己内部的代
阅读全文
摘要:1.类与实例 2.构造方法 3.方法重载 4.属性与修饰符 6.封装 7.继承 8.多态 只有充分了解设计模式才能体味多态的魅力。 9.重构 继承这种概念大多在重构中才能被提取和升级出来,所以重要的功能,及时重构。 10.抽象类 抽象类必须需要派生类重写抽象类中的接口,否则无法编译通过 11.接口
阅读全文
摘要:内容 今天学习了代理模式,代理模式是为其他对象提供一种代理以控制对这个对象的访问。 收获 1.通过设计一个公共的接口,这个接口将来在真实实体中和代理中都实现 2.起到一种间接访问实体的功能或者将真实实体隔离的功能 感悟 1.如果我们考虑数据的安全性可以使用代理模式 2.如果我们想在操作真实数据对象时
阅读全文
摘要:内容 今天学习了新的设计模式,装饰模式。装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。 收获 1.当我们在设计软件时,考虑使用基类和派生类的时候,就可以考虑是否可以使用装饰模式,因为装饰模式比生成子类更加灵活 2.当我们对一个已有的类添加额外的功能时,开放
阅读全文
摘要:内容 今天学习了面向对象的几种设计思想原则,之前一直是C开发,所以面向过程的思想比较严重。面向对象的四个好处:可维护好、可拓展性好、可复用性好、灵活性好。 收获 1.单一职责原则:封装一个类,职责应该单一,仅有一个以其它变换的原因,所以要做好类的职责分离。 2.开放-封闭原则:软件实体(类、模块、函
阅读全文
摘要:内容: 今天学习了设计模式中的策略模式。 1.策略模式是一种定义一系列算法的方法,这些算法都是相同的工作,只是实现不同,通过以相同的方式调用不同的算法,减少算法之间的耦合度。 2.这种设计模式可以用来封装任何类型的规则,需求中在不同时间应用不同的业务规则,就可以考虑使用策略模式来处理。 收获: 1.
阅读全文
摘要:内容: 今天学习了设计模式中的简单工厂模式。 收获: 1.将所有相同类似的对象抽象,然后获得一个基类 2.再根据该基类封装成不同的派生类 3.当创建对象时,该对象可能是基类的任意一个派生类对象,那么到底是哪一个派生类呢?此时就可以通过工厂模式,用一个单独的类来做这个创造实例的过程,这就是工厂 感悟:
阅读全文
摘要:从今天开始决定每天花点时间学习设计模式,提高编程能力,开拓编程思路,梳理软件编程框架。 学习设计模式,我看的书籍是《大话设计模式》,希望获得启发,有所收获。
阅读全文