设计模式
追梦者_wang
追梦者
展开
-
一张图说明白UML类图
阅读源码时候,如何快速高效率整理清楚项目中的各个类之间的关系?UML类图是必备工具,虽然开发编码中不需要用到,但是掌握uml类图是提高效率成为优秀程序员必备的技能。1 什么是UML统一建模语言(Unified Modeling Language,缩写UML)是非专利的第三代建模和规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制...原创 2019-12-08 22:29:51 · 145 阅读 · 0 评论 -
观察者模式
观察者模式 观察者模式:这个名字比较误导人,Observer(观察者)不是主动的去关注Observable(被观察者),而是很被动的告诉,Observable(被观察者)我需要关注你了,你有什么变化都要通知我,通知我后我做别的操作。很被动的一个角色。 所以Observer也被成为Publish-Subscribe(发布-订阅)模式,这样更加的具体描述了两者的关系。Observer(观察者)去订原创 2017-09-07 14:32:24 · 303 阅读 · 0 评论 -
解释器模式
解释器模式描述了如何构成一个简单的语言解释器,主要应用在使用面向对象语言开发的编译器中。它描述了如何为简单的语言定义一个文法,如何在该语言中表示一个句子,以及如何解释这些句子。定义:给定一个语言,定义它的语法,并定义一个解释器,这个解释器用于解析语言。就是相当于自定义一个格式的文件,然后去解析它。不用理解的那么复杂!android中的应用四大组件需要在Android原创 2017-08-21 16:54:52 · 217 阅读 · 0 评论 -
装饰模式
12.2 装饰模式概述 装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为,在现实生活中,这种情况也到处存在,例如一张照片,我们可以不改变照片本身,给它增加一个相框,使得它具有防潮的功能,而且用户可以根据需要给它增加不同类型的相框,甚至可以在一个小相框的外面再套一个大相框。 装饰模式是一种用于替代继承的技术,它通过一种无须定义子类的方式来给对象动态增加职责原创 2017-06-02 14:35:38 · 217 阅读 · 0 评论 -
组合模式
组合模式(Composite Pattern):组合多个对象形成树形结构以表示具有“整体—部分”关系的层次结构。组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性,组合模式又可以称为“整体—部分”(Part-Whole)模式,它是一种对象结构型模式。组合模式使用面向对象的思想来实现树形结构的构建与处理,描述了如何将容器对象和叶子对象进行递归组合,实现简单,灵活性好。原创 2017-06-01 14:02:13 · 189 阅读 · 0 评论 -
桥接模式
定义: 桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。例子: 两种常见文具的区别,它们是毛笔和蜡笔。大中小3种型号的画笔,能够绘制12种不同的颜色,如果使用蜡笔,需要准备3×12 = 36支,但如果使用毛笔的话,只需要提供3种型号的毛笔,原创 2017-06-01 13:42:36 · 236 阅读 · 0 评论 -
适配器模式
适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。原创 2017-05-31 13:18:20 · 240 阅读 · 0 评论 -
对象的克隆-原型模式
原型模式(Prototype Pattern):使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式是一种对象创建型模式。原型模式作为一种快速创建大量相同或相似对象的方式,在软件开发中应用较为广泛,很多软件提供的复制(Ctrl + C)和粘贴(Ctrl + V)操作就是原型模式的典型应用,下面对该模式的使用效果和适用情况进行简单的总结。原创 2017-05-31 13:05:35 · 330 阅读 · 0 评论 -
面向对象设计原则
面向对象设计原则为支持可维护性复用而诞生,这些原则蕴含在很多设计模式中,它们是从许多设计方案中总结出的指导性原则. 设计模式都是7大设计模式的具体实现,如下图 单一职责原则一个类只负责一个功能领域中的相应职责-高内聚开闭原则软件实体应对扩展开放,而对修改关闭里氏代换原则核心增加扩展性.多态. 所有引用基类对象的地方能够透明地使用其子类的对象(父类可以转化成子类) 在软件中将一个基类对象替换成原创 2017-05-26 13:41:28 · 204 阅读 · 0 评论 -
为什么设计模式重要
设计模式来源来源建筑行业,人们对舒适住宅和城市环境存在一些共同的认同规律,所谓的共同模式了设计模式是什么每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,我们可以无数次地重用那些已有的成功的解决方案,无须再重复相同的工作。这个定义可以简单地用一句话表示: 模式是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案。【A pattern i原创 2017-05-25 14:32:01 · 356 阅读 · 0 评论 -
责任链模式
模式的定义一个请求沿着一条“链”传递,直到该“链”上的某个处理者处理它为止。简单实现的介绍责任链模式最原始的裸体结构:分支语句:public class SimpleResponsibility { public static void main(String[] args) { int request = (int) (Math.random() * 3);原创 2017-05-23 13:34:49 · 290 阅读 · 0 评论 -
构造者模式
解释构造者模式(Builder),讲一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 简单解释:构造者隐藏了产品是如何组装的,所以需要改变一个产品的内部表示的时候,只是需要在定义一个具体的构造者就可以了,表示代码不受任何影响,具体代码具体产品public class Product {List<String> ps=new ArrayList<String>() ;原创 2017-03-28 10:52:53 · 257 阅读 · 0 评论 -
工厂方法模式
解释工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延期到其子类. 工厂模式的优点,克服了简单工厂违背开放-封闭原则(对扩展开放对更改封闭)的缺点 当然存在不足,新增一个产品就要增加一个产品的工厂类,增加了额外的开发量.具体代码抽象工厂public interface IFactory { Operation CreateOperation()原创 2017-03-28 15:07:10 · 177 阅读 · 0 评论 -
简单工厂模式
解释简单工厂模式又称静态工厂方法模式。这个模式很简单。它存在的目的很简单:定义一个用于创建对象的接口。具体代码抽象产品角色// 抽象产品角色:它一般是具体产品继承的父类或者实现的接口。// 在java中由接口或者抽象类来实现。public abstract class Operation { private double nA = 0; private double nB = 0原创 2017-03-28 15:01:28 · 205 阅读 · 0 评论 -
代理模式
回调的简单解释有一个回调接口CallBackInterface,定义了一个方法method().然后有一个上层类Teacher实现了接扣完成了method()的具体实现, 底层的类Student接受Teacher的对象,然后执行具体的方法call(),完成自己操作后可以通过Teacher的对象执行method()的具体实现,完成回调小例子打电话,老师分配给学生任务,写一篇作文,学生完成作文后,打电原创 2017-03-28 10:11:23 · 191 阅读 · 0 评论