随笔分类 - 23种设计模式
摘要:建造者模式 盖房项目需求: 需要建房子:这一过程为打桩、砌墙、封顶 房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的. 请编写程序,完成需求 传统方式解决盖房问题 1) 思路分析(图解) 2) 代码演示 AbstractHouse类: package com.at
阅读全文
摘要:原型模式 克隆羊问题: 现在有一只羊tom,姓名为: tom, 年龄为:1,颜色为:白色,请编写程序创建和tom羊 属性完全相同的10只羊 传统方式解决克隆羊问题 思路分析(图解) 代码演示 Sheep类: package com.atguigu.prototype; public class Sh
阅读全文
摘要:抽象工厂模式 基本介绍 抽象工厂模式:定义了一个interface用于创建相关或有依赖关系的对象簇,而无需指明具体的类 抽象工厂模式可以将简单工厂模式和工厂方法模式进行整合。 从设计层面看,抽象工厂模式就是对简单工厂模式的改进(或者称为进一步的抽象)。 将工厂抽象成两层,AbsFactory(抽象工
阅读全文
摘要:简单工厂模式 看一个具体需求 看一个披萨的项目:要便于披萨种类的扩展,要便于维护 披萨的种类很多(比如 GreekPizz、CheesePizz 等) 披萨的制作有 prepare,bake, cut, box 完成披萨店订购功能。 使用传统的方式来完成 思路分析(类图) 代码演示 抽象pizza类
阅读全文
摘要:设计模式类型 设计模式分为三种类型,共23种 创建型模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式。 结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 行为型模式:模版方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解
阅读全文
摘要:合成复用原则 基本介绍 原则是尽量使用合成/聚合的方式,而不是使用继承 继承方式图解: 满足合成复用原则的三种解决方案: 设计原则核心思想 找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。 针对接口编程,而不是针对实现编程。 为了交互对象之间的松耦合设计而努力
阅读全文
摘要:迪米特法则 基本介绍 一个对象应该对其他对象保持最少的了解 类与类关系越密切,耦合度越大 迪米特法则(Demeter Principle)又叫最少知道原则,即一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部。对外除了提供的public 方法,不对外
阅读全文
摘要:开闭原则 基本介绍 开闭原则(Open Closed Principle)是编程中最基础、最重要的设计原则 一个软件实体如类,模块和函数应该对扩展开放(对提供方),对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节。 当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代
阅读全文
摘要:里氏替换原则 IOO中的继承性的思考和说明 继承包含这样一层含义:父类中凡是已经实现好的方法,实际上是在设定规范和契约,虽然它不强制要求所有的子类必须遵循这些契约,但是如果子类对这些已经实现的方法任意修改,就会对整个继承体系造成破坏。 继承在给程序设计带来便利的同时,也带来了弊端。比如使用继承会给程
阅读全文
摘要:依赖倒转原则 基本介绍 依赖倒转原则(Dependence Inversion Principle)是指: 高层模块不应该依赖低层模块,二者都应该依赖其抽象 抽象不应该依赖细节,细节应该依赖抽象 依赖倒转(倒置)的中心思想是面向接口编程 依赖倒转原则是基于这样的设计理念:相对于细节的多变性,抽象的东
阅读全文
摘要:接口隔离原则 基本介绍 客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上 先看一张图: 类A通过接口Interface1依赖类B,类C通过接口Interface1依赖类D,如果接口Interface1对于类A和类C来说不是最小接口,那么类B和类D必须去实现他们不需要的方
阅读全文
摘要:设计模式的目的 编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有更好 代码重用性 (即:相同功能的代码,不用多次编写) 可读性 (即:编程规范性, 便于其他程序员的阅读和理解) 可扩展性 (即:当需要增加新的功
阅读全文

浙公网安备 33010602011771号