设计模式
文章平均质量分 67
JAVA之迷_
大家好,欢迎来到我的博客!
展开
-
策略模式与命令模式的区别 是什么?
策略模式 把易于变化的行为分别封装起来,让它们之间可以互相替换, 让这些行为的变化独立于拥有这些行为的客户。 GoF《设计模式》中说道:定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换。该模式使得算法可独立于它们的客户变化。 Command命令模式是一种对象行为型模式,它主要解决的问题是:在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”原创 2014-04-30 16:17:38 · 2613 阅读 · 0 评论 -
java设计模式--策略模式
java设计模式--策略模式 策略模式(Strategy) 策略模式(Strategy Pattern)中体现了两个非常基本的面向对象设计的原则: a.封装变化的概念 b.编程中使用接口,而不是对接口的实现 策略模式的定义: a.定义一组算法,将每个算法都封装起来,并且使它们直接可以互换。 b.策略模式使这些算法在客户端调用它们的时候能够互不影响地变化。 策略模式的意义:原创 2014-04-11 11:49:13 · 539 阅读 · 0 评论 -
java设计模式--外观模式
java设计模式--外观模式 java设计模式--外观模式 举例: 现在去某个政府部门办理一个营业执照,需要经历下面几道手续: 1.先去A部门盖章 2.再去B部门盖章 3.最后去C部门盖章 4.经历了这三道手续后一个营业执照就办理好了 下面不用设计模块的解决方案: public class GovernmentA { public void deal原创 2014-04-11 11:50:23 · 641 阅读 · 0 评论 -
ValueObject的理解
思考ValueObject应该更多从内存的角度思考,而非DB持久化的角度。 例如: public class A { public int Id { get; set; } public Address A_Address { get; set; } } public class B {原创 2014-04-30 16:19:28 · 3934 阅读 · 0 评论 -
java基础语法(二)--单列模式
java基础语法(二)--单列模式 /** * 功能:单列模式 * @author Administrator * */ public class SingletonTest { public static void main(String[] args) { Singleton test1 = Singleton.getInstance();原创 2014-04-11 11:53:00 · 622 阅读 · 0 评论 -
单一职责原则,开-闭原则,依赖倒置原则
《大话设计模式》连续三章讲述了三个原则,把这些重要语录摘抄下来,供我日后好好理解。 单一职责原则(Simple Response Principle):就一个类而言,应该仅有一个引起他变化的原因。 当一个类承担了过多的职责,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其它职责的能力。这种耦合会导致脆弱的设计,当设计变化时,设计会遭受到意想原创 2014-04-30 16:15:17 · 770 阅读 · 0 评论 -
简单工厂,Factory Method(工厂方法)和Abstract Factory(抽象工厂)模式
对于简单工厂来说,它的工厂只能是这个样子的 public class SimplyFactory { /** * 静态工厂方法 */ public static Prouct factory(String which) throw NoSuchProductExcption { if(which.equalIgnoreCase("product1"))原创 2014-04-30 16:16:07 · 569 阅读 · 0 评论 -
DDD中直接引用和ID关联的关系
聚合根到聚合根:通过ID关联; 聚合根到其内部的实体,直接引用; 聚合根到值对象,直接引用; 实体到聚合根: 通过ID关联 ; 实体到其聚合的聚合根:1对1ID关联,1对多可直接引用 ; 实体到其聚合内的实体:直接引用,但不要循环引用; 实体到其聚合外的实体:不可能有这种情况,因为实体都是在聚合内部的,对外不可见; 实体到任何值对象:直接引用; 值对原创 2014-04-30 16:19:53 · 2215 阅读 · 0 评论 -
java设计模式--单列模式
java设计模式--单列模式 单列模式定义:确保一个类只有一个实例,并提供一个全局访问点。 下面是几种实现单列模式的Demo,每个Demo都有自己的优缺点: Demo1: /** * 单列模式需要满足下面三个条件: * 1.私有的构造函数 * 2.私有的引用变量 * 3.公开的静态方法(唯一获取该类单个实例的地方) * * @author Administrato原创 2014-04-11 11:47:40 · 948 阅读 · 0 评论 -
状态模式的例子
1,状态模式允许一个"对象"在其内部状态改变的时候改变其行为。 2,状态模式的角色: 抽象状态,具体状态(一般是几个,每一个状态下有不同的行为,),环境(context)角色(就是对象,什么对象的状态,一般该对象要初始化一个状态,还有改变状态,还有该状态下的行为) 我们打篮球的时候运动员可以有正常状态,不正常状态,和超常状态,现在我们就以我们打篮球时候投篮时候的状态来举例子,原创 2014-04-30 16:18:16 · 771 阅读 · 0 评论 -
java设计模式--模板方法模式
java设计模式--模板方法模式 模板方法模式 模拟场景: 登录控制: 现在有一个基于Web的企业级应用系统,需要实现两种登录控制(管理员登录和客户登录),直接使用不同的登录页面来区分它们。 下面是基本的功能需求描述: 普通客户登录前台的登录控制功能: (1)前台界面:用户能输入用户名和密码;提交登录请求,让系统进行登录控制。 (2)后台:从数原创 2014-04-11 11:51:43 · 643 阅读 · 0 评论 -
java设计原则---开闭原则
开闭原则:指的是一个软件实体应对对扩展开发,对修改关闭(Software entities should be open for extension, but closed for modification)。这个原则是说在设计一个模块的时候,应对使这个模块可以在不被修改的前提下被扩展,换言之,应对可以不必修改源代码的情况下改变这个模块的行为。 根据开闭原则,在设计一个软件系统模块(原创 2014-03-13 21:28:37 · 1068 阅读 · 0 评论 -
java设计模式--简单工厂
java设计模式--简单工厂 简单工厂不是一个标准的设计模式,但是很常用需要掌握。 在java应用开发中,要"面向接口编程". 1.java中接口的概念: 在java中接口是一种特殊的抽象类,跟一般的抽象类相比,接口里面所有的方法都是抽象方法,接口里面所有的属性都是常量。 2.接口用来做什么? 接口相当于一份契约,约定了实现类应该要实现的功能。 3.接口的思想: "封装原创 2014-04-11 11:49:46 · 657 阅读 · 0 评论 -
设计模式-系列索引
园子里面有太多优秀的设计模式文章了,但是可能每个人的出发角度和关注点不同,可能会对每个模式理解的角度和切面不同,我想以我自己理解的方式来跟大家共同探讨下常用的设计模式,并且我会结合 工作中的开发实际场景来说明每个模式的用法和特点,希望能对大家有所帮助,当然这些内容都是个人在实际项目中的总结和实践,错误或者理解有误之处,还请大家多多指正,多谢大家前来交流! 创建型原创 2014-04-10 20:24:49 · 485 阅读 · 0 评论 -
我对面向对象设计的理解——Java接口和Java抽象类
在没有好好地研习面向对象设计的设计模式之前,我对Java接口和Java抽象类的认识还是很模糊,很不可理解。 刚学Java语言时,就很难理解为什么要有接口这个概念,虽说是可以实现所谓的多继承,可一个只有方法名,没有方法体的东西,我实现它又有什么用呢?我从它那什么也得不到,除了一些方法名,我直接在具体类里加入这些方法不就行了吗? 为什么一定要有抽象类这个概念?为什么就不能把这个父类原创 2014-04-30 16:14:30 · 602 阅读 · 1 评论 -
java设计模式--观察者模式(Observer)
java设计模式--观察者模式(Observer) java设计模式--观察者模式(Observer) 观察者模式的定义: 定义对象间的一种一对多的依赖关系。当一个对象的状态发生改变时,所有依赖于它的对象 都得到通知并被自动更新。 认识观察者模式: 1.目标和观察者之间的关系: 按照模式的定义,目标和观察者之间是典型的一对多的关系。 但是要注意,如果观察者只有一个,也是可以原创 2014-04-11 11:51:01 · 663 阅读 · 0 评论 -
JavaScript设计模式之一Interface接口
如何用面向对象的思想来写JavaScript,对于初学者应该是比较难的,我们经常用的JQuery其实也是用面向对象的思想去封装的,今天我们来看看如何在Javascript中用Interface,在C#还是JAVA中都应该面向接口设计我们的程序,在C#和Java中都Interface这样的关键字,但是JavaScript中没有相应的机制,但是Javascript很灵活,我们可以用它的特性去模仿Int原创 2014-04-26 08:01:38 · 980 阅读 · 0 评论 -
简单工厂、工厂方法和抽象工厂的学习笔记
简单工厂 理解:简单工厂模式的工厂类一般是使用静态方法,通过接收的参数不同来返回不同的对象的实例,不修改代码的话,是无法扩展的。 先定义产品类,它们需要实现同一接口或继承自同一抽象类。 //产品接口(或抽象类) public interface IClassDo { void doSomething();原创 2014-04-30 16:16:57 · 645 阅读 · 0 评论 -
领域驱动设计
领域中的分层模式(LAYERED ARCHITECTURE) 依次分为用户界面层,应用层,领域层,基础设施层 各层主要任务 用户界面层:想用户显示信息和解释用户指令。 应用层:定义软件要完成的任务,并指挥表达领域概念的对象来解决问题。应用层应尽量简单,不包含业务规则或知识,而只是为下一层中的领域对象协调任务,分配工作,屎他们相互合作。他没有反映业务情况的状态,但是却可以具有另外一种状态,为原创 2014-04-30 16:18:53 · 1735 阅读 · 0 评论 -
OOP的基本原则
OOP的基本原则 http://www.cnblogs.com/yeagen/archive/2011/09/05/2167205.html原创 2014-04-30 16:21:46 · 890 阅读 · 0 评论