代码抽象

有时候你会发现,一个项目,第一次写经常是是按函数式编程 ,写的功能越多,确发现,代码重复太多,某一个东西应该提取出来写成一个工具类。但是为什么前期没能构思出这个类呢?

如何从一个庞大的功能里分离出一些对象,这些对象有较强的内处理,不毕让外界知道,他只提供给外界一个主要的功能,而不是与主功能混为一谈。

1.做流程图(重中之重)

做流程图,是没有写代码之前的工作,这里可以看到大概逻辑。如果有相似的功能,至少要做两个功能的流程图,才能构思出,功能相同的代码,是否需要定义全局函数或者对象等。这做作流程图,我觉得用纸做会比较好一点

2.确定什么是工具,什么是实际实现。

多写写文档,全面分析。

时间: 2024-10-12 08:35:07

代码抽象的相关文章

Jsoup代码解读之六-防御XSS攻击

Jsoup代码解读之八-防御XSS攻击 防御XSS攻击的一般原理 cleaner是Jsoup的重要功能之一,我们常用它来进行富文本输入中的XSS防御. 我们知道,XSS攻击的一般方式是,通过在页面输入中嵌入一段恶意脚本,对输出时的DOM结构进行修改,从而达到执行这段脚本的目的.对于纯文本输入,过滤/转义HTML特殊字符<,>,",'是行之有效的办法,但是如果本身用户输入的就是一段HTML文本(例如博客文章),这种方式就不太有效了.这个时候,就是Jsoup大显身手的时候了. 在前面,我

四种java代码静态检查工具

[转载]常用 Java 静态代码分析工具的分析与比较 转载自 开源中国社区 http://www.oschina.net/question/129540_23043 1月16日厦门 OSC 源创会火热报名中,奖品多多哦 »   简介: 本文首先介绍了静态代码分析的基本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBugs,PMD,Jtest),最后从功能.特性等方面对它们进行分析和比较,希望能够帮助 Java 软件开发人员了解静态代码

常用 Java 静态代码分析工具的分析与比较

转载自: http://www.oschina.net/question/129540_23043 简介: 本文首先介绍了静态代码分析的基本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBugs,PMD,Jtest),最后从功能.特性等方面对它们进行分析和比较,希望能够帮助 Java 软件开发人员了解静态代码分析工具,并选择合适的工具应用到软件开发中. 引言 在 Java 软件开发过程中,开发团队往往要花费大量的时间和精力发现并修改代

设计模式---抽象工厂

组成 抽象层 抽象工厂,负责创建抽象族类产品 抽象产品,负责提供抽象族类产品定义 实现层 具体对象,负责实现族类具体产品 具体产品,负责实现族类具体产品 应用层 使用配置或IOC容器配置具体工厂 针对抽象接口编码创建具体产品 UML类图 实践 一般抽象层可以通过接口或抽象类进行定义,具体选择接口或抽象类,可以根据实际情况考量 抽象层一般定义在单独的基础程序集中,定义核心程序集FactoryCore.dll 实现层一般定义在扩展的程序集中,依赖抽象层,定义扩展程序集FactoryCore.Exte

使用 Git 来管理 Xcode 中的代码片段

使用 Git 来管理 Xcode 中的代码片段 代码片段介绍 xcode4 引入了一个新 feature: code snippets,在整个界面的右下角,可以通过快捷键:cmd + ctrl + opt + 2 调出来.code snippets 是一些代码的模版,对于一些常见的编程模式,xcode 都将这些代码抽象成模版放到 code snippet 中,使用的时候,只需要键入快捷键,就可以把模版的内容填到代码中. 例如,在引入 GCD(Grand Central Dispatch) 后,当

抽象之艰难,一次作业分析

1. 问题的提出,一次作业 要求实现 小学四则运算系统,系统出10道题,用户输入答案,系统判定对错,系统给出对错的数量. 这是以邹欣老师的<构建之法>作为教材,某高校的软件工程课程作业. 该作业要求迭代开发,在<构建之法>群里,企业的工程师.高校教师对某次某位同学提交的作业进行了点评. 这位同学提交的是 JAVA GUI 版本的程序.控制件的选择,每道题的两个数是文本框禁用,要求用户输入答案处是文本框,判断对错是文本框禁用:选择加减乘除题目,是按钮. 该同学实现了出10道题目.问题

简单工厂、工厂方法、抽象工厂、策略模式、策略与工厂的区别

结合简单示例和UML图,讲解工厂模式简单原理. 一.引子 话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰).Bmw(宝马).Audi(奥迪)),还雇了司机为他开车.不过,爆发户坐车时总是这样:上Benz车后跟司机说"开奔驰车!",坐上Bmw后他说"开宝马车!",坐上 Audi后他说"开奥迪车!".你一定说:这人有病!直接说开车不就行了?!而当把这个爆发户的行为放到我们程序语言中来,我们发现C语言一直是通过这种方式来坐车的!幸运的是这种有

浅谈代码混淆加固技术

随着移动互联网的快速发展,应用的安全问题不断涌现出来,于是越来越多的应用开发者将核心代码由java层转到native层,以对抗成熟的java逆向分析工具,然而如果native层的代码如果没有进行任何保护,还是比较容易被逆向分析工作者获取其运行逻辑,进而完成应用破解或者进行其他的操作.那么提高native代码的安全性有什么好办法吗?答案是肯定的,今天我们就来介绍一种有效对抗native层代码分析的方法--代码混淆技术. 那么,什么是代码混淆呢?代码混淆的学术定义如下: 代码混淆(code obfu

原生 JS 代码和用 jQuery 实现效果各有什么优劣势

通过自己的理解再加上自己收集的一些资料总结如下: 各種封裝,主要目的就是爲了省心,拿jq來說: JQ对不同浏览器的事件,DOM对象,都进行了封装,各种操作都可以直接兼容各种浏览器, 要知道, 不同浏览器的区别不仅仅是在CSS里写"-webkit-"还是"filter"的区别, 连事件模型这种底层的东西都不一样= = JQ特有的CSS-LIKE选择器, 链式写法, 封装的各类animate函数, 封装了的异步加载, 都大幅提高了开发效率, 减少重复劳动 JQ用dela