学习大话设计模式

面向对象四个好处:可维护,可扩展,可复用,灵活性好

设计模式四个境界

1.没学前一点不懂,想不到用设计模式,设计的代码很糟糕(我现在的境界)

。。。。

UML类图

每个矩形框的意义:代表一个类(Class),类图分三层,

第一层显示名称,如果是抽象类,则用斜体表示

第二层是类的特性,通常是字段和属性

第三层是方法和行为

注意:前面的符号,‘+’表示public,‘-’表示private,‘#’表示protected

接口图

与类图的区别主要是顶端有<<interface>>

第一行是接口名称

第二行是接口方法

接口的另一种表示方法:棒棒糖表示方法

继承关系

uml图中的继承关系用空心三角形+实线来表示

接口关系

实现接口用空心三角形+虚线来表示

关联关系

关联关系用实箭头表示

聚合关系

定义:是一种“弱”的拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分

表示:用空心的菱形+实线箭头

合成关系

定义:是一种“强”的拥有关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样

表示:实心的棱形+实线箭头

依赖关系

表示:用虚线箭头表示

开放-封闭原则

1.面对需求,对程序的改动是通过增加新的代码来实现,而不是更改现有的代码----这句话的意思是增加新的代码是通过增加新的子类以继承多态的方式来更改,而不是修改原先类中的代码

依赖-倒转原则

时间: 2024-10-06 06:02:12

学习大话设计模式的相关文章

学习大话设计模式03_单一职责原则

单一职责原则:一个类,应仅有一个引起它变化的原因 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力.这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏. 软件设计真正要做的许多内容,就是发现职责并把那些职责相互分享.如果你能够想到多于一个的动机去改变一个类,那么这个类就是具有多于一个的职责 学习大话设计模式03_单一职责原则

学习大话设计模式01_简单工厂模式(简易计算器)

1 /** 2 * 面向对象(运算类) 3 * 简易计算器 4 * @author Monica 5 * 6 */ 7 public class Operation { 8 private double numberA = 0; 9 private double numberB = 0; 10 11 //虚函数 12 public double GetResult() { 13 double result = 0; 14 return result; 15 } 16 17 public doub

学习大话设计模式02_工厂模式 进阶至 策略模式

1 /** 2 * 现金收费抽象类 3 * @author Monica 4 * 5 */ 6 public abstract class CashSuper { 7 /** 8 * 现金收取超类的抽象方法 9 * @param money 收取现金,参数为原价 10 * @return 返回当前价 11 */ 12 public abstract double acceptCash(double money); 13 } 14 15 /** 16 * 正常收费子类 17 * @author M

学习大话设计模式06_装饰模式

装饰模式(Decorator): 动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活. 1 /** 2 * Component 是定义一个对象接口,可以给这些对象动态地添加职责 3 * @author Monica 4 * 5 */ 6 public abstract class Component { 7 public abstract void Operation(); 8 } 9 10 11 /** 12 * ConcreteComponent 是定义了一个具体

学习大话设计模式05_依赖倒转原则

依赖到转原则 A.高层模块不应该依赖低层模块.两个都应该依赖抽象. B.抽象不应该依赖细节.细节应该依赖抽象.即:针对接口编程,不要对实现编程. 里氏代换原则: 一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别.也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化. (子类型必须能够替换掉它们的父类型) 只有当子类可以替换掉父类,软件单位的功能不受影响时,父类才能真正被复用,而子类也能够在父类的基本上增加新的行为. 由于子类型的可替换

学习大话设计模式07_代理模式

代理模式:为其他对象提供一种代理以控制对这个对象的访问. 1 /** 2 * 定义了RealSubject和Proxy的共用接口,这样就在任何使用RealSubject的地方都可以使用Proxy. 3 * @author Monica 4 * 5 */ 6 abstract class Subject { 7 public abstract void Request(); 8 } 9 10 11 /** 12 * 定义Proxy所代表的真实实体 13 * @author Administrato

学习大话设计模式08_工厂方法模式

简单工厂模式的最大优点在于工厂类中包含了必要逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖. 工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到其子类. 工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂方法把简单的内部逻辑判断移到了客户端代码来进行.你想要加功能,本来是改工厂类的,而现在是修改客户端. /** * 雷锋类,拥有扫地.洗衣.买米 * @a

《大话设计模式》学习笔记系列--1. 简单工厂模式

简单工厂模式实现了一种"工厂"概念的面向对象设计模式,它可以在不指定对象具体类型的情况下创建对象.其实质是定义一个创建对象的接口,但让实现这个接口的类来决定实例化具体类.工厂方法让类的实例化推迟到子类中进行. 以书本上的计算器程序为例,其UML描述如下: 图中,AddOperator, SubtactOpertor继承算式基类Operator,而CreateOperator则是负责创建一个操作类,而不指明具体的子类类型. 下面,我们来看代码: 首先操作积累: /// <summa

大话设计模式学习笔记——面向对象基础

前言 好记性不如烂"笔头"系列--大话设计模式学习笔记 目录 面向对象基础 面向对象基础 什么是类与实例 一切事物皆为对象,即所有的东西老师对象,对象就是可以看到.感觉到.听到.触摸到.尝到.或闻到的东西.准确地说,对象是一个自包含的实体,用一组可识别的特性和行为来标识.面向对象编程,英文叫 Object-Oriented Programming,其实就是针对对象来进行编程的意思.类就是具有相同属性和功能的对象的抽象集合.实例就是一个真实的对象.比如我们属于'人'类,而个人就是'人'类