设计模式
设计模式相关知识总结
ShaderJoy
醉心于研究一些特效(用代码来画画),曾涉猎过图形图像视频处理 、计算机视觉 、增强现实/虚拟现实等技术领域,就职于美图。
展开
-
依赖和关联关系的区别
以前在做分析时,总是感觉依赖和关联关系没有什么大的区别,或者说对于他们之间的细节还是不够清楚。 (1)依赖关系 依赖关系表示的是类之间的调用关系,即用一个类去调用另外一个类, 被调用的类表现为调用类的 局部变量,方法的参数,调用类调用被调用类的静态方法。 这些情况下,调用类和被调用类之间属于依赖关系。 (2)关联关系转载 2013-05-24 14:56:35 · 1940 阅读 · 0 评论 -
设计模式--6大原则--依赖倒置原则
依赖倒置原则(Dependence Inversion Principle),简称 DIP 定义 High level modules should not depend upon low level modules. Both should depend upon abstractions. Abstractions should not depend upon details. Detai...转载 2013-06-20 13:32:02 · 1723 阅读 · 2 评论 -
设计模式--6大原则--里氏置换原则
里氏置换原则(Liskov Substitution Principle),简称 LSP 定义: Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it. 所有引用基类的地方必须能够透明的使用其子类对象...转载 2013-06-20 15:27:17 · 1535 阅读 · 0 评论 -
工厂模式(简单工厂,工厂方法,抽象工厂)
1.简单工厂模式: 简单工厂模式又称静态工厂方法模式。从命名上就可以看出这个模式一定很简单。它存 在的目的很简单:定义一个用于创建对象的接口。 先来看看它的组成: 1) 工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。在java中它往往由 一个具体类实现。 2) 抽象产品角色:它一般是具体产品继承的父类或者实现的接口。在java中由接口或者原创 2013-06-18 11:05:07 · 2063 阅读 · 0 评论 -
设计模式--6大原则--单一职责原则
单一职责原则(Single Responsibility Principle),简称 SRP。 定义: There should never be more than one reason for a class to change. 应该有且仅有一个原因引起类的变更。 有时候,开发人员设计接口的时候会有些问题,比如用户的属性和用户的行为被放在一个接口中声明。这就造成了业务对象和业务逻辑被...转载 2013-06-20 16:29:44 · 1483 阅读 · 0 评论 -
设计模式之——观察者模式
1.什么是观察者模式 观察者模式是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。 2.观察者模式的实现 虽然在Java中提供了现成的Observer和Observable实现,但由于Observable已经被实现成class,所以当需要将自己的某个业务类实现成可被观察的特性时,往往还转载 2013-09-02 19:12:28 · 1591 阅读 · 0 评论 -
设计模式之——状态模式
状态模式的针对性很强,当有状态变化的时候很多工程师会倾向于选择状态模式,但在使用时仍然存在着很多问题,比如状态的拆分不清晰、状态的变迁不准确、类的职责划分不单一等,一旦与具体的业务逻辑和已有的代码上下文放在一起,就出现了混乱。因此,本文以一个实际的例子来总结一下在现实当中如何使用状态模式。 1.什么是状态模式 状态模式(State Pattern)是设计模式的一种转载 2013-09-02 19:24:39 · 1730 阅读 · 0 评论 -
设计模式15问
设计模式是什么? 优秀的设计范例 从优秀设计方案中发现和总结出来的经验 在实践中反复出现的设计问题的优秀解决方案 设计和开发人员相互交流的基本术语 设计模式不是什么? 面向对象设计的框架 可供简单组合的积木式的设计元件 新发明的创新思路和方法 解决面向对象设计问转载 2013-09-02 19:06:20 · 1719 阅读 · 0 评论 -
设计模式--6大原则--接口隔离原则
接口隔离原则的定义 有两种定义: 第一种:Clients should not be forced to depend upon interfaces that they don't use. (客户端不应该强行依赖它不需要的接口) 第二种:The dependency of one class to another one should depend on the smallest po...转载 2013-06-20 13:11:09 · 2075 阅读 · 0 评论 -
设计模式之——建造模式
1.将构造复杂对象的过程和组成对象的部件解耦。就像攒电脑一样,不管什么品牌的配件,只要兼 容就可以装上;同样,一样的配件,可以有好多组装的方式。这是对降低耦合、提高可复用 性精神的一种贯彻。 来看看建造模式的组成吧。 1) 抽象建造者角色:这个角色用来规范产品对象的各个组成成分的建造。一般而言,此角 色独立于应用程序的业务逻辑。 2) 具体建造者角色:担任这转载 2013-06-18 13:12:52 · 1626 阅读 · 0 评论 -
设计模式--6大原则--开闭原则
开闭原则(Open Closed Principle) 开闭原则的核心是:对扩展开放,对修改关闭白话意思就是我们改变一个软件时(比如扩展其他功能),应该通过扩展的方式来达到软件的改变,而不应该修改原有代码来实现变化 开闭原则算是前五种原则的一个抽象总结,前五种是开闭原则的一些具体实现,所以如果使用开闭原则,其实有点虚,因为它没有一个固定的模式,但是最终保证的是提高程序的复用性、可维护性等要求 要...转载 2013-06-18 14:51:46 · 1513 阅读 · 0 评论 -
设计模式之——单例模式
1.单例模式可分为有状态的和无状态的。 有状态的单例对象一般也是可变的单例对象,多个单态对象在一起就可以作为一个状态仓库一样向外提供服务。 没有状态的单例对象也就是不变单例对象,仅用做提供工具函数。 2.实现: 饿汉式 public class Singleton { // 在自己内部定义自己一个实例 // 注意这是private 只供内部调用 priva转载 2013-06-18 12:37:24 · 1540 阅读 · 0 评论 -
论设计模式在软件开发中的应用
在解决这个论题之前,我们首先要了解设计模式的概念,及其基本的分类。 “设计模式”这四个字,相信大家在很多地方都会看到, 什么是设计模式呢? 一个设计模式提供一种提炼子系统或软件系统中的组件的,或者它们之间的关系的纲要设计。设计模式描述普遍存在的在相互通讯的组件中重复出现的结构,这种结构解决在一定的背景中的具有一般性的设计问题。 由于[GOF95]是论述软件模式的著作的第一本,因此有些人常转载 2013-05-24 15:47:40 · 1988 阅读 · 0 评论 -
设计模式--6大原则--迪米特法则
迪米特法则(Law of emeter) 定义:一个对象应该对其他对象了解最少 迪米特法则的核心观念就是类间解耦,弱耦合,只有弱耦合了以后,类的复用性才可以提高。 举个例子:家人探望犯人 形象一点的比喻类似于:监狱内的犯人是不应该跟外面的人接触的,当然或许会有探亲的。这里的监狱就是类,里面的犯人就是类内部的信息,而监狱里的狱警就相当于迪米特法则的执行者。 错误示范 家人:家人只与犯人...转载 2013-06-18 23:51:23 · 1487 阅读 · 0 评论