• 设计模式学习(待续)


    1、简单工厂模式。

        用一个单独的类(工厂)来封装实例的创建过程。

    2、策略模式。

        定义算法家族,将他们封装起来,使得算法的变化不影响客户的使用。也就是说,策略模式封装了变化。在实践中,它几乎可以封装几乎任何类型的规则,只要在分析中发现要在不同时间应用不同的业务规则,就可以考虑应用这种模式来处理。

        在基本的策略模式中,选择的具体实现还是要由客户端实现,并转给策略对象context。但是通过将策略模式与简单工厂模式组合,选择的具体职责也可由context来完成,这样就可以最大化减轻客户端的职责了。(据说还可以利用反射机制为context减负,以最小化需求变更引起的代码更改)

    3、单一职责原则(对一个类而言,仅有一个引起它变化的原因);

        开放-封闭原则(对于扩展开放,对于更改封闭,是面向对象的核心所在);

        依赖倒转原则(高层模块不用依赖于底层模块,两个都依赖于抽象;抽象不应依赖细节,细节应该依赖抽象。该原则是面向对象的标志,程序中所有依赖关系都终止于抽象类或者接口,那么就是面向对象的设计了;反之,就是面向过程的设计了);

        里氏代换原则(子类型必须能替换掉他们的父类型,只有这样,父类才能够被复用,子类才能在父类的基础上增加新的行为。该原则使得使用父类型的模块在无需修改的情况下就可以扩展,即“开放-封闭原则”成为可能);

    4、装饰模式(有效地把类的核心功能和装饰功能区分开了,可以去除相关类中重复的装饰逻辑)。

    5、代理模式(为其它对象提供一种代理以控制对这个对象的访问)。

    6、工厂方法模式(相比与简单工厂模式,符合了开放-封闭原则,将选择判断从简单工厂的内部移到了客户端)。

    7、原型模式。

    锄禾日当午,不如coding苦~
  • 相关阅读:
    plsql developer中各个window的作用【转】
    回忆java输入输出流,走出误区
    JDBC中的元数据
    对于Oracle、mysql和sql server中的部分不同理解
    我对数据库事务的理解(MYSQL中)
    关于mysql的备份和恢复
    mysql触发器学习
    mysql存储过程学习
    JavaScript位运算符
    【JavaScript】数组随机排序 之 Fisher–Yates 洗牌算法
  • 原文地址:https://www.cnblogs.com/wangzhigang/p/3719150.html
Copyright © 2020-2023  润新知