设计模式
lvyuan30276
这个作者很懒,什么都没留下…
展开
-
java设计模式(一)—策略模式
策略模式1.概念定义算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。2.体现的设计原则 (1)封装变化:找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。 (2)多用组合,少用继承。 (3)针对接口编程,不针对实现编程。 3.实现示例武器接口:package原创 2015-11-23 22:31:56 · 444 阅读 · 0 评论 -
重构-改善既有代码设计学习笔记(一)—代码的坏味道
1.重复代码 抽取成方法 2.过长函数 抽取方法 ,当需要注释才能说明该段代码用途的时候,就应该抽取出函数,并用用途,而 非实现手法命名。以做什么命名,而不是怎么做命名。条件表达式和循环是提练的信号 3.过大的类 (1)将类中作用类似的变量抽取出来,组成一个新类。(2)将类中的过长函数抽取成短函数。 4.过长参数列 (1)将该参数转换成方法去获取 (2)原创 2017-06-16 21:26:10 · 324 阅读 · 0 评论 -
里氏替换原则
里氏代换原则由2008年图灵奖得主、美国第一位计算机科学女博士Barbara Liskov教授和卡内基·梅隆大学Jeannette Wing教授于1994年提出。其严格表述如下:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1代换o2时,程序P的行为没有变化,那么类型S是类型T的子类型。这个定义比较拗口且难以理解,因此我们一般使用它的另一个通俗版定义:转载 2017-03-30 13:56:25 · 507 阅读 · 0 评论 -
设计模式的分类
总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。六大原则单一职责原则Single Res转载 2017-03-28 14:24:43 · 387 阅读 · 0 评论 -
spring学习(三)—深入理解DIP、IoC、DI以及IoC容器
转载自:http://www.cnblogs.com/liuhaorain/p/3747470.html深入理解DIP、IoC、DI以及IoC容器摘要面向对象设计(OOD)有助于我们开发出高性能、易扩展以及易复用的程序。其中,OOD有一个重要的思想那就是依赖倒置原则(DIP),并由此引申出IoC、DI以及Ioc容器等概念。通过本文我们将一起学习这些概念,并理清他们之间微妙的关系转载 2017-02-08 14:40:42 · 482 阅读 · 0 评论 -
java设计模式(三)—单例模式
1.概念 确保一个类只有一个实例,并提供一个全局访问点。2.作用 (1) 如下对象只能有一个实例,需要用单例。比方说:线程池,缓存,对话框,处理偏好设置和注册表的对象、日志对象,充当打印机、显卡等设备的驱动程序的对象。 (2) 为什么不创建一个类,把所有变量和方法都设为静态的,把该类当成一个单例? 如果类自给自足,不依赖于复杂的初始化原创 2015-12-05 21:10:51 · 438 阅读 · 0 评论 -
java设计模式(四)—工厂模式
1.概念 定义了一个创建对象的接口,但由子类决定你要实例化的类是哪一个。工厂方法让类把实例化延迟到子类。 2.作用 所有的工厂模式都用来封装对象的创建。工厂方法模式通过让子类决定该创建的对象是什么,来达到将对象创建的过程封装的目的。以便得到松耦合,更有弹性的设计。3.设计原则 依赖抽象,而不是具体类。4.实现方式 4.1 类图原创 2015-12-05 22:44:55 · 345 阅读 · 0 评论 -
java设计模式(二)—观察者模式
观察者模式:1.概念:定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。主题和观察者之间定义了一对多的关系。观察者依赖于此主题,只要主题状态一有变化,观察者就会被通知,并可能更新状态。2.体现的设计原则: (1)封装变化:找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。 (2)多用组合,少用原创 2015-11-23 23:42:30 · 413 阅读 · 0 评论 -
java设计模式(五)—命令模式
1.概念: 将请求封装成“对象”,以便使用不同的请求,队列,或者日志来参数化其它对象。命令模式也支持可撤销操作。 自己理解:在特定接收者上绑定一组动作来封装一个请求(成为对象),并只暴露出一个execute()方法。然后将该对象做为参数传给其它类或对象(调用者),当调用者调用execute()的时候,接收者就会进行相应的动作。2.作用 一个命令对原创 2015-12-10 23:44:50 · 481 阅读 · 0 评论 -
java设计模式(三)——单例模式(静态内部类单例模式)
加载一个类时,其内部类是否同时被加载?下面我们做一个实验来看一下。 Java代码 public class Outer { static { System.out.println("load outer class..."); } //静态内部类 static class StaticInner { stat转载 2017-10-24 19:54:49 · 570 阅读 · 0 评论