UML & Structure
文章平均质量分 60
著一
每一段新的代码在我手中诞生对我来说就象观看刹那花开的感动!
展开
-
队列
#include #include#define ok 1#define error 0#define true 1#define false 0typedef struct qnode{ int data; struct qnode *next;}qnode,*linkqueptr;typedef struct { linkqueptr fro原创 2012-09-25 21:40:41 · 480 阅读 · 0 评论 -
继承、实现、依赖、关联、聚合、组合的联系与区别
继承、实现、依赖、关联、聚合、组合的联系与区别分别介绍这几种关系:继承 指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性; 实现 指的是一个class类实现interface接口(可以是多个)的功能;实现是类与转载 2016-10-18 15:04:14 · 306 阅读 · 0 评论 -
面向对象设计原则之开闭原则
开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。在开闭原则的定义中,软件实体可以指一个软件模块、一个由多个类组成的局部结构或一个独立的类。 任何软件都需要面临一个很重要的问题,即它们的需求会随时间的推移而发生变化。当软件系统需要面对新的需求时,我们应该尽量保证系统的设计框架是稳定转载 2016-07-05 19:19:01 · 393 阅读 · 0 评论 -
UML中关联和依赖的区别收集大全
没关系 > 依赖 > 关联 > 聚合 > 组合。下面是从网上搜集的一些看法: 1. Dependency Relationship Draw a dependency relationship between two classes, or between a class and an interface, to show that the client class depends on the转载 2016-10-17 17:45:11 · 993 阅读 · 0 评论 -
创建对象与使用对象——谈谈工厂的作用
在设计模式的教学和推广过程中,很多企业学员和在校学生经常问我,工厂模式(包括简单工厂模式、工厂方法模式和抽象工厂模式)到底有什么用,很多时候通过反射机制就可以很灵活地创建对象,为毛还要工厂?微笑,在本文中我将围绕创建对象和使用对象来简单谈谈工厂的作用。 与一个对象相关的职责通常有三类:对象本身所具有的职责、创建对象的职责和使用对象的职责。对象本身的职责比较容易理解,就是对象自身所具有的一些数据和转载 2016-06-23 00:18:40 · 621 阅读 · 0 评论 -
面向对象设计原则之迪米特法则
迪米特法则又称为最少知识原则(LeastKnowledge Principle, LKP),其定义如下: 迪米特法则(Law of Demeter, LoD):一个软件实体应当尽可能少地与其他实体发生相互作用。 如果一个系统符合迪米特法则,那么当其中某一个模块发生修改时,就会尽量少地影响其他模块,扩展会相对容易,这是对软件实体之间通信的限制,迪米特法则要求限制软件实体之间通信的宽度原创 2016-07-05 19:09:46 · 514 阅读 · 0 评论 -
面向对象设计原则之接口隔离原则
接口隔离原则定义如下: 接口隔离原则(Interface Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。 根据接口隔离原则,当一个接口太大时,我们需要将它分割成一些更细小的接口,使用该接口的客户端仅需知道与之相关的方法即可。每一个接口应该承担一种相对独立的角色,不干不该干的事,该干的事都要干。转载 2016-06-29 20:51:15 · 419 阅读 · 0 评论 -
工厂模式代码实例
1、创建名称Car接口package factory.car.test;public interface Car { public void run(); public void stop();}2、分别创建名称Benz、Ford、Toyota类,并分别实现Car接口package factory.car.test;public class Benz implements Car原创 2016-06-26 00:31:59 · 348 阅读 · 0 评论 -
面向对象设计原则之里氏代换原则
里氏代换原则由2008年图灵奖得主、美国第一位计算机科学女博士Barbara Liskov教授和卡内基·梅隆大学Jeannette Wing教授于1994年提出。其严格表述如下:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1代换o2时,程序P的行为没有变化,那么类型S是类型T的子类型。这个定义比较拗口且难以理解,因此我们一般使用它的另一个通俗版定义:转载 2016-06-29 15:23:09 · 334 阅读 · 0 评论 -
《重构-改善代码既有的设计》重构,第一个案例
起点:编写3个类的代码 1、第一个类-影片(Movie):package com.lee.test.aFirstExample;public class Movie { /** * @param title * @param priceCode */ public Movie(String title, int priceCode) {原创 2016-11-16 17:15:34 · 3078 阅读 · 2 评论 -
动态代理
https://www.zhihu.com/question/20794107 http://www.cnblogs.com/flyoung2008/archive/2013/08/11/3251148.html http://www.cnblogs.com/xiaoluo501395377/p/3383130.html转载 2017-03-21 17:10:23 · 278 阅读 · 0 评论 -
Visual Paradigm及Sequence实例
http://training.evget.com/video/5268 官网操作文档 https://www.visual-paradigm.com/support/documents/vpuserguide/94/2576/7190_drawingclass.html 一、以团购系统的取消订单为例。 1、选择File > New Diagram > UML Diagrams >原创 2016-04-10 16:06:03 · 9337 阅读 · 0 评论 -
C 语言高精度算法(一)——加法
[摘要]所谓的高精度运算,是指参与运算的数范围大大超出了标准数据类型(整型、实型)能表示的范围运算。这个时候只能用数组来表示参与运算的数字,那么他们的运算也就不能简单的直接进行了。原创 2016-12-26 14:45:15 · 1640 阅读 · 1 评论 -
面向对象设计原则之依赖倒置原则
依赖倒置原则: 1、高层模块不能依赖低层模块,如果依赖,说明代码需要重构,提炼出相同的抽象类,然后都依赖抽象。 2、抽象不依赖于细节。 3、细节依赖于抽象。 实际中即原创 2017-03-09 10:02:40 · 330 阅读 · 0 评论 -
Builder模式
xxx原创 2017-02-10 17:13:35 · 285 阅读 · 0 评论 -
浅谈大数的进制转换
http://blog.csdn.net/sjf0115/article/details/8690581 http://www.cnblogs.com/bhlsheji/p/5104558.html http://www.cnblogs.com/phinecos/archive/2009/09/11/1564975.html转载 2016-12-29 14:45:41 · 356 阅读 · 0 评论 -
C语言计算一个数每个位的数值
一个字节中的数字,转换为3个元素的数组。 调试成功。void Des_HexToArray(u8 Hex,u8 *pu8Array){ u8 i; for(i=0;i<3;i++) { pu8Array[i]=Hex%10; if(Hex< 10) break; Hex=Hex/10; }}原创 2016-12-29 14:39:13 · 3506 阅读 · 0 评论 -
在MyEclipse中生成项目的UML类图
from: http://blog.csdn.net/huangjing_whlg/article/details/39313511 新建一个Java项目:package com.jacket;public abstract class AbstractC { private String name; public String getName() { return转载 2016-10-24 16:10:00 · 4884 阅读 · 0 评论 -
面向对象设计原则之单一职责原则
单一职责原则是最简单的面向对象设计原则,它用于控制类的粒度大小。单一职责原则定义如下: 单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。 单一职责原则告诉我们:一个类不能太“累”!在软件系统中,一个类(大到模块,小到方法)承担的职责越多,它被复用转载 2016-06-25 11:28:28 · 456 阅读 · 0 评论 -
实体关系图E-R图(Entity Relationship Diagram)
1、什么是E-R图E-R图即实体-联系图(Entity Relationship Diagram),是指提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。E-R方法:是“实体-联系方法”(Entity-Relationship Approach)的简称。它是描述现实世界概念结构模型的有效方法。 实体联系模型,实体关系模型或实体联系模式图(ERD)是由美籍华裔计算机科学家陈品山(Pet原创 2015-12-24 00:29:55 · 233829 阅读 · 10 评论 -
strlen()函数的实现
#include #includeusing namespace std;int str_length(char *abc){ char *p=NULL; p=abc; int count=0; while(*p) { p++; count++; } return count;} main(){ char *abc="abcd原创 2012-10-07 20:45:09 · 500 阅读 · 0 评论 -
双向链表
#include #includeusing namespace std;typedef struct student{ int data; struct student *pre; struct student *next;}node;node *creat(){ int cycle=1,x; node *head,*p,*s; head=(n原创 2012-10-08 16:52:55 · 402 阅读 · 0 评论 -
UML建模之时序图(Sequence Diagram)
一、时序图简介(Brief introduction) 时序图(Sequence Diagram)是显示对象之间交互的图,这些对象是按时间顺序排列的。顺序图中显示的是参与交互的对象及其对象之间消息交互的顺序。时序图中包括的建模元素主要有:对象(Actor)、生命线(Lifeline)、控制焦点(Focus of control)、消息(Message)等等。二、转载 2015-01-02 22:12:56 · 2221 阅读 · 0 评论 -
链栈
#include #include#define ok 1#define error 0#define false 0#define true 1typedef struct node{int data;struct node *next;}stacknode,*linkstackptr;typedef struct {int count原创 2012-09-25 16:52:15 · 493 阅读 · 0 评论 -
找到数组中第二大的数值
#include #include using namespace std;int min_num=0;int find_sec_num(int a[],int n){ int max_num; int sec_num; int i; max_num=a[0]; sec_num=min_num; for(i=1;i { if(a[i]>max_n原创 2012-10-01 00:02:56 · 955 阅读 · 0 评论 -
两个链表合并为一个链表
#include #include typedef struct Node{int data;struct Node *next;}node;typedef struct Node *linklist;using namespace std;void *creat(linklist *L,int n){*L=(linklist)malloc(sizeof原创 2012-10-02 23:42:35 · 721 阅读 · 0 评论 -
工厂方法模式
using System;using System.Collections.Generic;using System.Text;namespace 工厂方法_计算器{ /// <summary> /// 运算类 /// </summary> class Operation { private double _numberA = 0;转载 2015-04-24 22:48:16 · 429 阅读 · 0 评论 -
快速排序
#include #define N 16int data[N] = {14,10,11,90,6,15,0,80,97,13,12,26,1,35,9,42};void quick_sort(int data[], int low, int high){ int i, j, pivot; if (low { pivot=data[low]; i=l原创 2012-08-11 15:04:16 · 589 阅读 · 0 评论 -
链表倒置
#include #includeusing namespace std;typedef struct node{ int data; struct node *next;}node;node *creat(){ node *head,*p,*s; int x,cycle; head=(node*)malloc(sizeof(node)); p=原创 2012-09-29 14:50:39 · 724 阅读 · 0 评论 -
直接插入排序(哨兵和越界)
今天看了下排序的第一个算法——直接插入排序,又动手写了下程序,发现问题很多,看来程序要经常写的,时间长了不写就生疏了,尤其是这些排序算法,看上去很简单,但写起程序来问题却很多,下面总结如下://直接插入排序(带哨兵) public static void sort(int[] arr){ int length = arr.length; for(i转载 2012-09-26 15:22:33 · 5611 阅读 · 0 评论 -
OOA/OOD/OOP
OO(object-oriented): 基于对象概念 , 以对象为中心 , 以类和继承为构造机制 , 来认识 , 理解 , 刻画客观世界和设计 , 构建相应的软件系统的一门方法 ; 模拟人类的思维方式 , 使开发 , 维护 , 修改更加容易。OOA(object-oriented analysis): 强调的是在系统调查资料的基础上,针对 OO 方法所需要的素材进行的归类分析和整理,而不是对管理业转载 2015-12-07 23:50:51 · 392 阅读 · 0 评论 -
Visio2013绘制泳道流程图(Cross-functional Flowchart)
一、New——>Cross-functional Flowchart 二、选择流程图的方向,垂直。 三、修改流程名称,各功能模块名称。 四、插入一列,默认为2列。 五、绘制流程图 假设这里面需要处理的业务流程是:秘书编写公文,由办公室副主任审核,通过后再交由主任审核,任何不通过的审核都提交到前一个审核人,所以通过将基本的流程图中的相关图形拖入这个泳道图中,并按业务流程进原创 2015-11-05 19:58:16 · 34671 阅读 · 3 评论 -
Visio画Basic Flowchart流程图(一)
弄清图形符号: 运行Visio,新建一个基本流程图。在形状窗口中用基本流程图的图形符号来表示程序算法。表1给出了较常用的“流程图”所用的基本符号。 举例使用: 一、制作顺序结构的流程图(见图1) 例1:编写一个加法练习程序; (1) 分别在形状窗口中选用基本流程图的图形符号,拖曳到工作区。拖动图形符号的八个控制点,即可更改大小。 (2) 双击图形符号,填入所转载 2015-11-05 18:48:51 · 5511 阅读 · 0 评论 -
Visio 2013绘制时序图
为什么要绘制时序图?我们编码的时候,知道有的用例的业务逻辑按照比较确定的时间先后顺序进行展开。这时候,我们就需要知道我们设计的系统中的不同类之间传递消息(可以认为是不同对象函数间的调用)要按照怎么样的顺序、传递什么消息、返回什么消息。这时候用时序图是最好不过的了。时序图的定义:时序图是描述消息时间顺序的交互图。在图形上,时序图是一张表,其中显示的对象沿横轴排列,从左到右分布在图的顶部;而消息则沿纵轴原创 2015-11-05 17:44:22 · 29492 阅读 · 0 评论 -
链表的创建,打印,测长,删除,排序
#include #includetypedef struct student{ int data; struct student *next;}node;node *creat(){ node *head,*p,*s; int x,cycle=1; head=(node*)malloc(sizeof(node)); p=head; while(转载 2012-08-04 22:23:45 · 502 阅读 · 0 评论 -
朴素字符串匹配算法
#include #include #include#define maxsize 40#define ok 1#define error 0using namespace std;typedef char String[maxsize+1];int String_assign(String m,char *chars){ int i; if(strle原创 2012-10-01 18:19:21 · 462 阅读 · 0 评论 -
简单工厂模式
using System; using System.Collections.Generic; using System.Text;namespace OperationLibrary { /// /// 运算类 /// public class Operation { private double _numberA =转载 2015-04-24 21:17:31 · 532 阅读 · 0 评论 -
冒泡排序
#include int main(int argc, char *argv[]){ int a[10]; int temp,i,j; printf("input 10 number:\n"); for(i=0;i { scanf("%d",&a[i]); } for(j=1;j for(i=0;i { if(a[i]>a[i原创 2012-09-26 09:39:50 · 558 阅读 · 0 评论 -
外观模式之读写文件
外观模式的定义是子系统会有相互调用,这样相互调用的子系统就产生了耦合,违反迪米特法则。 如下通过例子描述public class MyFileReader { public String read(String fileNameSrc) { System.out.println("读取文件,获取明文:"); StringBuilder sb =原创 2017-03-22 17:25:14 · 472 阅读 · 0 评论