设计模式学习笔记
本专栏用java语言,深入探讨软件设计的23种设计模式.非常详细.个文章运用代码和图片为了让读者更容易理解.
andyonlines
趁着热情还在,奋斗吧!
展开
-
十六 设计模式--建造者模式
文章目录1 盖房项目需求2 传统方式解决盖房需求问题分析3 建造者模式基本介绍4 建造者模式的四个角色5 建造者模式解决盖房需求6 建造者模式的注意事项和细节7 建造者实现的重点1 盖房项目需求需要建房子:这一过程为打桩、砌墙、封顶房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的.编写程序,完成需求.代码:public class Client...原创 2020-03-13 20:20:37 · 100 阅读 · 0 评论 -
十五 设计模式--原型模式
文章目录1 克隆羊问题2 传统方式解决克隆羊问题2.1 解题思路2.2 代码实现2.3 传统的方式的优缺点3 原型模式-基本介绍4 原理结构图(UML类图)5 代码6 深入讨论-浅拷贝和深拷贝7 深拷贝的应用案例8 原型模式的注意事项和细节1 克隆羊问题现在有一只羊tom,姓名为: tom, 年龄为:1,颜色为:白色,请编写程序创建和tom羊 属性完全相同的10只羊。2 传统方式解决克隆羊问...原创 2020-03-13 13:16:18 · 111 阅读 · 0 评论 -
十四 设计模式--工厂模式3(抽象工厂模式)
文章目录1 基本介绍2 使用抽象工厂模式来完成披萨项目.3 工厂模式小结1 基本介绍抽象工厂模式:定义了一个interface用于创建相关或有依赖关系的对象簇,而无需指明具体的类抽象工厂模式可以将简单工厂模式和工厂方法模式进行整合。从设计层面看,抽象工厂模式就是对简单工厂模式的改进(或者称为进一步的抽象)。将工厂抽象成两层,AbsFactory(抽象工厂) 和 具体实现的工厂子类。程序...原创 2020-03-12 23:03:42 · 102 阅读 · 1 评论 -
十三 设计模式--工厂模式2(工厂方法模式)
1 看一个新的需求披萨项目新的需求:客户在点披萨时,可以点不同口味的披萨,比如 北京的奶酪pizza、北京的胡椒pizza 或者是伦敦的奶酪pizza、伦敦的胡椒pizza。思路1:使用简单工厂模式,创建不同的简单工厂类,比如BJPizzaSimpleFactory、LDPizzaSimpleFactory 等等.从当前这个案例来说,也是可以的,但是考虑到项目的规模,以及软件的可维护性、可扩...原创 2020-02-16 18:06:55 · 110 阅读 · 0 评论 -
十二 设计模式--工厂模式1(简单工厂模式)
文章目录1 用实例引出问题1.1 实例需求2 传统方法完成实例2.1 使用传统方法的类图2.2 代码实现2.3 分析传统的方式的优缺点3 简单工厂模式的介绍4 使用简单工厂模式1 用实例引出问题首先我们先用一个实例来引出问题.1.1 实例需求看一个披萨的项目:要便于披萨种类的扩展,要便于维护.披萨的种类很多(比如 GreekPizz、CheesePizz 等)披萨的制作有 prep...原创 2020-02-16 10:47:40 · 105 阅读 · 0 评论 -
十一 设计模式--单例模式
设计模式单例模式java语言原创 2020-02-14 22:30:18 · 77 阅读 · 0 评论 -
十 设计模式概述
1 掌握设计模式的层次每个人掌握一门技术都有一个循序渐进的过程.学习设计模式也是.下面介绍一下掌握设计模式的层次,你们可以对照一下你们是在哪个等级.第1层:刚开始学编程不久,听说过什么是设计模式第2层:有很长时间的编程经验,自己写了很多代码,其中用到了设计模式,但是自己却不知道第3层:学习过了设计模式,发现自己已经在使用了,并且发现了一些新的模式挺好用的第4层:阅读了很多别人写的源码和...原创 2020-02-14 19:40:54 · 211 阅读 · 0 评论 -
九 UML类图
1 UML基本介绍UML——Unified modeling language UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等,如右图:1.1 UML 类图的分类画U...原创 2020-02-06 22:14:21 · 186 阅读 · 0 评论 -
八 设计模式七大原则之合成复用法则
1 基本介绍合成复用原则总结起来就一句话:尽量使用合成/聚合的方式,而不是使用继承2 说明当我们在设计程序的时候,首先考虑的是合成,聚合,组合的方式(这些类会在下一节的UML类图有介绍),而不是继承,除非没有办法才会用继承.我们用案例来说明一下:假如说有两个类,A类和B类,A类中有一个函数operation1,如果在B类中想用A类的operation1函数,我们会怎么办?很多人会想到继承...原创 2020-02-05 16:32:32 · 195 阅读 · 0 评论 -
七 设计模式七大原则之迪米特法则
1 基本介绍一个对象应该对其他对象保持最少的了解类与类关系越密切,耦合度越大迪米特法则(Demeter Principle)又叫最少知道原则,即一个类对自己依赖的类知道的越少越好(h)。也就是说,对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部。对外除了提供的public方法,不对外泄露任何信息迪米特法则还有个更简单的定义:只与直接的朋友通信直接的朋友:每个对象都会与其他对象有耦...原创 2020-02-05 13:47:47 · 306 阅读 · 0 评论 -
六 设计模式七大原则之开闭原则
1 基本介绍开闭原则(Open Closed Principle)是编程中最基础、最重要的设计原则一个软件实体如类,模块和函数应该对扩展开放(对提供方),对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节。当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。编程中遵循其它原则,以及使用设计模式的目的就是遵循开闭原则。2 看实例引出问题2....原创 2020-01-30 13:08:03 · 208 阅读 · 0 评论 -
五 设计模式七大原则之里氏替换原则
1 OO中的继承性的思考和说明继承包含这样一层含义:父类中凡是已经实现好的方法,实际上是在设定规范和契约,虽然它不强制要求所有的子类必须遵循这些契约,但是如果子类对这些已经实现的方法任意修改,就会对整个继承体系造成破坏。继承在给程序设计带来便利的同时,也带来了弊端。比如使用继承会给程序带来侵入性,程序的可移植性降低,增加对象间的耦合性,如果一个类被其他的类所继承,则当这个类需要修改时,必须考...原创 2020-01-30 09:56:38 · 219 阅读 · 0 评论 -
四 设计模式七大原则之依赖倒置原则
1 基本介绍依赖倒置原则是指 :高层模块不应该依赖低层模块, 两者都应该依赖抽象抽象不应该依赖细节,细节应该依赖抽象依赖倒置的中心思想是面对接口编程依赖倒置原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定的多.抽象为基础的架构比以细节为基础的架构要稳定的多.在java中,抽象指的是接口或抽象类,细节就是具体的实现类.使用接口或者抽象类的目的就是定制好规范,而不涉及任何...原创 2020-01-26 20:26:26 · 238 阅读 · 0 评论 -
三 设计模式七大原则之接口隔离原则
1 接口隔离原则的基本介绍客户端不应该依赖它不需要的接口,即一个类对另外一个类的依赖应该建立在最小的接口上.2 实例分析我们来看一张UML 类图我们通过实际代码来实现上面类图:package com.andy.principle.segregation;public class Segregation1 { public static void main(String[] ...原创 2020-01-25 08:37:14 · 268 阅读 · 0 评论 -
二 设计模式七大原则之单一职责原则
1 设计模式的七大原则设计模式原则,其实就是程序员在编程时应当遵守的原则,也是各个设计模式的基础(即: 设计模式为什么这样设计的依据)设计模式常用的七大原则有:单一职责原则接口隔离原则依赖倒转(倒置)原则里氏替换原则开闭原则迪米特法则合成复用原则下面我们会一一介绍上面的7大设计原则,本节会介绍单一职责原则.2 单一职责原则单一职责原则是对类来说的,即一个类应该只负责一项...原创 2020-01-23 10:00:46 · 150 阅读 · 0 评论 -
一 设计模式的介绍
1.什么是设计模式软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。2. 设计模式的重要性编写软件过程中,程序员会面临很多问题,特别是当软件项目特别大的时候,比如耦合性,内聚以及可维护,可拓展性,重用性,灵活性等,而设计模式就是为解...原创 2020-01-21 09:45:45 · 67 阅读 · 0 评论