
设计模式
zcw_java
不管你是用诗歌,还是白话文,还是古文,写个故事,重要的是内容和里面承载的道理。同样产品不管你用java还是c,还是c++等,重要的满足客户需求,用心做有灵魂的产品
展开
-
1、简单工厂模式
最近重拾设计模式看了看,给自己总结一下!大家也瞧瞧 首先简单工厂模式. 可以理解为将一组对象的共性抽象出来一个抽象类作为父类. 假设A1,B1,C1三个类,将他们的共同行为,共同属性提取出来! 抽象出一个抽象类带一个抽象方法. [code="java"] public abstract class Operation { //定义2个变量 private double ...原创 2011-10-12 10:43:03 · 111 阅读 · 0 评论 -
9、简单原型模式--深浅克隆!
原型模式(Protoype) 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 之所以需要重写Cloneable的clone方法,因为方法访问修饰符是protected,外界没办法调用,这里用到[color=red]浅克隆[/color][code="java"] //原型 public class Prototype implements Cloneable{ ...原创 2011-10-18 15:16:46 · 132 阅读 · 0 评论 -
8、工厂方法模式
简单工厂和工厂方法! 简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。 简单讲,简单工厂(计算器)如果需要扩展计算器的功能添加类,然后在工厂中加上else if()这样的判断,工厂方法模式相当与把工厂也替换成抽象的了,具体的算法来对应具体的工厂.这样不会违背开闭原则,想想看!简单工厂对扩展开放,但对修改...原创 2011-10-17 17:54:34 · 94 阅读 · 0 评论 -
7、代理模式
代理,顾名思义! 日常生活中的代理商等,都是对代理的诠释! 为其它对象提供一种代理以控制对这个对象的访问. 1,远程代理--也就是为一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实. 2,虚拟代理--是根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的真实对象. 3,安全代理--用来控制真实对象访问时的权限,一般用于对象应该有不同的...原创 2011-10-13 21:52:44 · 100 阅读 · 0 评论 -
6、装饰模式
不是我不小心,只是真情难以寻觅,不是我存心故意,只因无法找到良机,哈哈!!!精辟 Decorator(装饰模式) 动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活. 什么时候使用? 也就是说是为已有的功能动态地添加更多功能的一种方式,当系统需要新功能的时候,是向旧的类中添加新的代码,这些新加的代码通常装饰了原有类的核心职责或主要行为. 但问题是,它们在主...原创 2011-10-13 15:00:36 · 90 阅读 · 0 评论 -
5、依赖倒置原则
电脑主板上的显卡,内存,硬盘,风扇...等!如果说和主板的关系是[color=red]易插拔关系[/color]. 那么软件中就应该是[color=red]高内聚,低耦合[/color]了. [color=red]依赖倒置原则,抽象不应该依赖细节,解析应该依赖抽象,说白了就是针对接口编程,不要对实现编程.[/color] 原则一:高层模块不应该依赖低层模块.两个都应该依赖抽象. 原则二...原创 2011-10-12 14:44:26 · 84 阅读 · 0 评论 -
4、开-闭原则
软件设计模式中,这种不能修改,但可以扩展的思想也是最重要的一种设计原则,它就是开-闭原则(The Open-Closeed Principle简称OCP) 也就是说软件实体(类,模块,函数等等)应该可以扩展,但是不可修改. 该原则最重要两个特征 1,对于扩展是开放的(Open for extension) 2,对于更改是封闭的(Closed for modification) 这...原创 2011-10-12 13:42:00 · 155 阅读 · 0 评论 -
3、单一职责
SPR(单一职责原则) 一个类而言,应该仅有一个引起它变化的原因. 例(俄罗斯方块) 下落,旋转,碰撞判断,移动,堆积这些游戏逻辑. 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或抑制这个类完成其他职责的能力,这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏. 其实一个二位数组控制一个左边,x/y!软件设计真正要做的许多内容,就...原创 2011-10-12 11:44:50 · 87 阅读 · 0 评论 -
2、策略模式
Strategy,首先简单介绍 他是算法集合,封装了大量算法,让他们之间可以互相替换!此模式让算法的变化,不影响到使用算法的客户. 刚开始,我总觉得代理和策略很相似,后来发现,[color=red]策略模式,肯定有个容器,包容所有的策略,然后根据条件使用不同的策略,代理就不是了,代理就是代理某个行为或对象[/color] 策略模式同时还简化了单元测试,因为每个接口都有自己的实现!可以通过接口...原创 2011-10-12 10:54:29 · 78 阅读 · 0 评论 -
吸血鬼数的算法
[code="java"] package com.test; import java.util.Arrays; public class XiGustNumber { /** * @param args */ public static void main(String[] args) { action(); } public stat...原创 2012-01-06 17:55:33 · 150 阅读 · 0 评论