
设计模式
stone_tomcat
路漫漫气息永存!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
状态模式
状态模式是根据状态决定行为。如果一个类的很多动作,都要根据不同的State来实现的话。就可以把State抽象出来,在State里面实现这个方法。假设一个MM,她有三个行为:smile、cry、say,两个状态:HAPPY、SAD。public class MM { String name; private enum MMState {HAPPY, SAD} MMState state; public void smile() { //switch原创 2020-07-16 17:17:46 · 168 阅读 · 0 评论 -
Builder 模式
Builder(构建器)构建复杂对象特点:分离复杂对象的构建和表示构建复杂对象会很麻烦,所以可以将其分成一部分一部分来构建同样的构建过程可以创建不同的表示这句话的意思是,你用什么样的方式构建,构建出来的就是什么样的。如我们用无需记忆,自然使用用的多了自然而然就会了和模板方法很像,强调构造对象,模板:强调的方法执行类图中:Rroduct是要构建的复杂的产品Builder:是将产品分为几个或者更多的部分SimpleBuilder和ComplexBuilder是不原创 2020-07-16 17:13:59 · 258 阅读 · 0 评论 -
Visitor设计模式
visitor只适合结构固定的程序设计,当程序由增加删除组件的操作时,visitor设计模式是不适合的。所以Visitor会被使用在编译器和语法分析中。下面通过实例来了解这个设计模式的具体的作用。需求:在一些电子商城会有一些卖组装电脑的,电脑组装使用不同的元件,每个元件的价格不一样,而且卖家也会根据买家的身份不同而给予不同的折扣,下面,考虑使用程序来实现这个买家买元件进行组装并被卖家给与打折优惠的过程。接下来我们考虑如何使用Java面向对象编程将这个事情使用代码的方式将它实现出来。首先,我们.原创 2020-07-16 17:00:51 · 520 阅读 · 0 评论 -
Iterator模式
为了更好的理解Iterator的原理,我们从创建一个容器开始。1、创建动态扩展的容器创建一个容器,可以向里面添加元素,并且当容器装满时能动态扩增。可以用数组也可以用链表实现。在物理层面上的存储结构只有两种:数组、链表。数组是连续存储,链表是不连续的,每个数据中都有一个指针,指向下一个节点。所以任何的数据结构的本质都是数组或链表。代码举例:底层用数组实现动态扩增容器 ArrayList_ (所有带 _ 的都是要与jdk的区分开)/** * 相比数组,这个容器不用考虑边界问题,可以...原创 2020-07-16 16:43:20 · 208 阅读 · 0 评论 -
Facade模式
调停者模式和门面模式有相似之处。他们都是用一个类来协调其他类的关系。比如在一个坦克游戏中,有坦克、子弹、墙、爆炸等,他们之间都有联系而且联系特别复杂。当我们想再添加一个游戏物体进来的时候,又会和其他物体产生更复杂的联系。如果一直这样下去代码会越来越混乱。这时可以用调停者或者门面。门面(Facade)模式当有一堆很复杂的关系时,对外调用会很麻烦。这时可以把内外关系封装起来,对外提供的接口封装到一个类里。由这一个类管理其他的类,对外提供一个统一的接口。这就是门面模式。门面图解:相原创 2020-07-16 16:25:15 · 242 阅读 · 0 评论 -
单例模式
定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一原创 2020-07-16 16:22:52 · 212 阅读 · 0 评论 -
Java设计模式之——策略模式
Comparable接口:此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的compareTo 方法被称为它的自然比较方法。实现此接口的对象列表(和数组)可以通过 Collections.sort(和 Arrays.sort)进行自动排序。实现此接口的对象可以用作有序映射中的键或有序集合中的元素,无需指定比较器。首先呢我们先定义一个Cat类,对猫来进行比较package com.site.test;//对猫进行排序public class Cat { .原创 2020-07-16 16:19:19 · 190 阅读 · 0 评论 -
设计模式之单例
单例模式有多种写法各有利弊,现在我们来看看各种模式写法。1. 饿汉模式public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){ } public static Singleton getInsta...原创 2019-08-24 11:29:27 · 225 阅读 · 0 评论