
设计模式
设计模式的学习,包含设计模式的原则,分类,每种设计模式用途、用法、在源码中碰到了也会分析怎么用的。
左五先生
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MVC模式
MVC=Model(模型)+View(视图)+Controller(控制器)目的:将M层和V层分离Model层:数据库的持久层(bean和dao包)Controller层:分离M和V,提供对M和V的控制支持,它就是一个中转站,将模型层的内容输出到视图层,将视图层的请求发送到模型层View层:界面(HTML,JSP)MVC可对程序的后期维护和扩展提供了方便,并且使程序某...原创 2018-11-27 22:43:49 · 173 阅读 · 0 评论 -
设计原则
设计原则:1.单一职责原则;2.里氏替换原则;3.依赖倒置原则;4.接口隔离原则;5.迪米特法则;6.开闭原则;一:单一职责原则:有且仅有一个原因引起类的变更;优点:类的复杂降低,可读性提高,可维护性提高,变更引起的风险降低;二:里氏替换原则:只要父类能出现的地方子类就可以出现,而且替换为子类也不会发生任何的错误或异常,使用者不必知道是符类还是子类,但是反过来就不行;...原创 2018-10-28 22:35:23 · 149 阅读 · 0 评论 -
设计模式分类及各模式简介
设计模式分为创建型、结构型和行为型三种。其中创建型模式与对象的创建有关;结构型模式用于处理类和对象的组合;行为型模式描述类或对象怎样交互和怎样分配职责。一.创建型: 原型(Prototype)模式:用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。原型模式又可以分为两种:浅克隆和深克隆。浅克隆仅仅复制所考虑的对象,而不复制它所引用的对象,也就是其中的成员对象并不复制;深克...原创 2018-11-01 18:44:22 · 502 阅读 · 0 评论 -
软件的模块独立性
模块独立性是创建良好设计的一个重要原则,一般采用模块间的耦合和模块的内聚两个准则进行度量。内聚是指模块内部各元素之间联系的紧密程度,内聚度越高,则模块的独立性越好。内聚性一般有以下几种:①偶然内聚:指一个模块内的各个处理元素之间没有任何联系。②逻辑内聚:指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。③时间内聚:把需要同时执行的动作组合在一起形成的模块。④通信内...原创 2018-11-07 23:56:10 · 3174 阅读 · 0 评论 -
工厂方法Factory Method
描述:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法是一个类的实例化延迟到其子类。工厂模式中出现的角色:抽象产品类Product:负责制定产品的共性,实现对抽象的定义; 具体产品类ConcreteProduct:定义具体的产品; 抽象创建类Creator:抽象工厂; 实现工厂ConcreteCreator:具体的工厂,具体的创建产品;工厂方法Java模板:...原创 2018-11-08 22:28:06 · 152 阅读 · 0 评论 -
单例模式Singleton 及其多线程
目录一.单例模式的定义单例模式的实现:单例模式使用场景:单例模式的优点:单例模式的缺点:注意事项:单例模式类图:单例模式Java模板:二.单例模式与多线程1.立即加载:“饿汉模式”2.延迟加载:“懒汉模式”3.静态内置类实现单例模式4.序列化和反序列化的单例模式5.使用static代码块实现单例模式6.使用enum枚举数据实例实现单...原创 2018-11-11 21:36:51 · 798 阅读 · 0 评论 -
装饰模式Decorator Pattern
装饰设计模式:动态地给对象添加一些额外的职责。就增加功能来说,它相比生成子类更加灵活。对一组对象的功能(类中的方法)进行增强时,就可以使用该模式进行问题的解决。装饰和继承都能实现一样的特点:进行功能的扩展增强。有什么区别呢?进行的继承,可能导致继承体系越来越臃肿。不够灵活。装饰比继承灵活。例如:既然加入的都是同一种技术--缓冲。前一种是让缓冲和具体的对象相结合。可不可以将缓...原创 2018-11-12 22:55:08 · 131 阅读 · 0 评论 -
策略模式Strategy Pattern
描述:定义一组算法,每个算法都封装起来,并使它们之间可以互换。实现:定义多个继承于同一个接口的策略,再使用一个类将这种对象封装起来。在调用时,以这个封装类为准,不断的让这个类去封装不同的策略。实现策略之间的转换。策略模式的优点:算法可以自由切换; 避免使用多重条件判断;(多重条件语句不易维护,且容易出错。使用策略模式后,可以由其它模块决定采用何种策略) 扩展性良好。策略模式的缺点...原创 2018-11-13 22:56:06 · 246 阅读 · 0 评论 -
适配器模式Adapter Pattern
适配器模式(包装模式)——一种补救的模式定义:将一个类的接口变换成客户端所期待的另一种接口,从而使原本的接口不匹配而无法在一起工作的两个类能够在一起工作。实现方式:(类适配)将目标类型设置成一个接口。让适配类继承待变换类,实现目标类接口。这样适配类就转化成了目标类型。(满足单一继承原则) (对象适配)如果是有多个不同的待变换类,要将他们融合起来并转换为目标类。便可以使用接口与关联实现...原创 2018-11-14 22:46:28 · 224 阅读 · 0 评论 -
代理模式&Spring AOP
首先了解代理模式:定义:通过代理对象访问目标对象,代理对象与目标对象.代理对象是对目标对象的扩展,并会调用目标对象代理模式在Java中由三种实现:静态代理、动态代理、Cglib代理。静态代理:静态代理是由程序员创建或工具生成代理类的源码,再编译代理类。所谓静态也就是在程序运行前就已经存在代理类的字节码文件,代理类和委托类的关系在运行前就确定了。需要定义接口或者父类,被代理对象与代...原创 2019-01-22 14:34:07 · 149 阅读 · 0 评论 -
迭代器模式Iterator Pattern
迭代器模式现在已经是一个没落的设计模式了,为什么这样说呢?因为大多数语言现在已经内置了迭代器这种工具。比如Java中的Java.util.Iterator这个接口。在Java1.5之后更是增加了Java.util.Iterable。定义:提供一种方法访问一个容器对象中各个元素,而又不需要暴露该对象内部的细节。简单的说迭代器就类似于数据库中的游标,可以在一个容器内上下翻滚,遍历所有的它需要查看的...原创 2018-11-15 23:05:29 · 145 阅读 · 0 评论