编程思想

利用配置文件的编程思想及rest api规范

孤街浪徒 提交于 2019-12-07 06:42:58
利用配置文件的编程思想 我们现在要设计一个程序,让我们能通过发送邮件、短信、微信的形式给别人发送消息 我们以前的写法是先定义一个notify.py文件 def email(): pass def msg(): pass def wechat(): pass 在这个文件中定义好三种方法,然后在执行文件中引入他们并使用 from 原来的你 import notify def run(): notify.email() notify.msg() notify.wechat() if __name__ == '__main__': run() 这样的方法能实现目标,但是如果我们不想用邮件发送了,那就需要到每一个使用到的地方去删除邮件发送的方法,很麻烦 所以现在的我们使用配置文件settings NOTIFY_LIST = [ 'notify.email.Email', # 'notify.msg.Msg', 'notify.wechat.Wechat', ] notify包中我们定义各种方法 每一个方法都是一个文件中放一个类 在使用时,我们直接导入这个notify包 from notify import send_xxxx def run(): send_xxxx('报警') if __name__ == '__main__': pass 那么这个send_xxxx方法从哪里来的呢

读书笔记--《JAVA编程思想》---第12章 通过异常处理错误

倾然丶 夕夏残阳落幕 提交于 2019-12-06 13:22:18
12.1概念 发现错误的理想时机是在编译阶段,也就是在你试图运行程序之前,然而编译期间并不能找出所有的错误,余下的问题必须在运行期间解决。这就需要错误源能通过某种方式,把适当的信息传递给某个接收者----该接收者将知道如何正确处理这个问题。------- -这句话也就是说java其实是提供了一种机制使用户能够正确的处理错误。 改进的错误恢复机制是提供代码健壮性的最强有力的方式 ---错误恢复机制自己理解着其实就是当错误发生时我们要求程序做什么样的处理。 java使用异常来提供一致的错误报告模型,使得构建能够与客户端代码可靠的沟通问题。 java中的异常处理的目的在于通过少于目前数量的代码来简化大型、可靠的程序的生成,并通过这种方式使你更加自信:你的应用中没有未处理的错误。 异常机制是在什么情况下出现的: 1、c以及其他早期语言常常具有多种错误处理模式,这些模式往往建立在约定俗成的基础上,并不属于语言的一部分。通常会返回某个特殊值或者设置某个标志,并且假定接收者将对这些个返回值或标志进行检查,以判定是否发生了错误。然而随着时间的推移,程序员在使用程序库的时候会认为“这是别人发生的错误,与我无关”--- 呵呵,对的,很多程序员都有这种想法,这就导致了程序员不再去检查错误。 2、和第1种相反,确实在每次调用方法的时候都去彻底的进行错误检查了,但是这个时候代码会变的很难阅读 --

java编程思想(六)总结

白昼怎懂夜的黑 提交于 2019-12-06 13:21:29
第七章 多态 7.1 多态与封装 多态是分离 “做什么”和“怎么做”,即接口与实现分离,消除类型之间的耦合性 封装是合并特征和行为来创建新的数据类型 7.2 向上转型和向下转型 向上转型即导出类实例转化为基类实例,由于只能调用与基类公共的方法,可能会缩小 “接口”。 向下转型即基类实例转化为导出类实例,由于 java 采用后期绑定策略,因此只有在运行阶段才知道是否能正确转化,因此存在风险。 7.3 转机 前期绑定:由编译器和连接程序实现。 后期绑定:运行时根据对象类型进行绑定。 Java除了static和final方法(private)之外,其他方法均属于后期绑定。 Private方法默认是final,对导出类是屏蔽的,因此不能被覆盖 7.4 抽象类和抽象方法 抽象类一般表示所有导出类的共同部分,抽象类不存在实例对象 7.5 构造器的调用顺序 1.基类构造器 2.组合(属性初始化) 3.自身构造 清理的调用顺序相反 7.6用继承进行设计 除非为了表示父子类关系,即 xx 是一种 xx 或者向上转型,一般选择组合 用继承表达行为间的差异,用组合表达状态的变化 来源: CSDN 作者: MrGeroge 链接: https://blog.csdn.net/MrGeroge/article/details/52625925

Java编程思想 练习题(一)

*爱你&永不变心* 提交于 2019-12-06 08:39:22
一、 创建一个类,它包含一个int域和一个char域,它们都没有被初始化,将它们的值打印出来,以验证Java执行了默认初始化。 private static char c; private static int i; public static void main(String[] args){ System.out.println(String.valueOf(c)); System.out.println(String.valueOf(i)); } 返回值: 0 二、参照本章的HelloDate.java这个例子,创建一个“Hello,World”程序,该程序只要输出这句话即可。 书中HelloDate源码: import java.util.*; public class HelloDate { public static void main(String[] args){ System.out.println("Hello, it's:"); System.out.println(new Date()); } } 修改后HelloWorld源码: public class HelloWorld { public static void main(String[] args){ System.out.println("Hello, World"); } } 返回值:Hello

Java编程思想 第7章 复用类

…衆ロ難τιáo~ 提交于 2019-12-05 19:59:51
1、继承与组合 复用类的方法有两种:继承与组合。继承就不多说了,组合就是直接在类中new一个对象。 数组也是对象,使用数组也是组合的一种。 2、初始化基类 当创建一个导出类的对象时,该对象包含一个基类的子对象。这个子对象跟直接new一个基类的对象完全相同,唯一的区别是:一个在外部,一个被包装在导出类对象内部。 在导出类构造器中,通过调用基类构造器来执行初始化。【在Java中,所有导出类的所有构造器内部都必须调用父类的某一个构造器或 所有导出类的所有构造器内部都必须调用一个其他构造器(既可以是本类构造器也可以是父类的构造器),但是最终必须调用到父类的某一个构造器。也就是说,必须确保能够正确初始化父类对象。 如果没有显式调用其它构造器,JVM会默认为你添加调用父类无参构造的代码,如果父类已经显式定义其他有参构造而没有定义无参构造,则会报找不到的编译期异常。 】 3、代理:介于继承与组合的“中庸之道” 1)将一个成员对象置于所需构建的类中(类似组合) 2)在新类中暴露该成员对象的所有方法(类似继承) 4、继承与组合的商榷 组合比继承常用得多; 应该慎用继承技术,多用组合。因为组合的方式比继承灵活得多。 那么应该何时使用继承更加适合呢?下面是判断依据: 是否需要从新类向基类进行向上转型? 1)如果必须向上转型,则继承是必须的; 2)如果不需要,则应好好考虑继承与组合的取舍。 5

面向对象

随声附和 提交于 2019-12-05 14:33:38
面向对象 1、什么是面向对象? 面向对象是一门编程思想。 1.1面向过程编程思想 核心是“过程”二字,过程指的是解决问题的步骤,即先干什么,再干什么!基于该编程思想编写程序,就好比在设计一条工厂流水线,一种机械式的思维方式。 优点:将复杂的问题流程化,进而简单化。 缺点:牵一发而动全身,程序的可扩展性差。 1.2面向对象编程思想 核心是“对象”二字,对象指的的是“特征与技能”的结合体。 基于该编程思想编写程序,就好比在创造世界,一种“上帝式”的思维方式。 优点:可扩展性高。 缺点:编写程序的复杂程度比面向过程高。 2、如何产生对象? (1)什么是类? 类指的是类型,类别。 现实世界中: 先有一个个的对象,经过社会的文明发展,随之总结出类。 程序中: 必须先有类,再通过“调用类,产生对象”。 对象指的是“特征与技能”的结合体,类指的是一系列“对象之间相同的特征与技能” (2)如何定义类? 如何写类并产生对象? 先从现实世界中通过一个个对象总结出类。 然后再定义类,后调用类产生对象。 (3)定义类语法: class关键字:帮你产生类的。 class类的名字: 对象之间相同的特征 对象之间相同的技能 来源: https://www.cnblogs.com/medigrat/p/11927544.html

第二周总结

て烟熏妆下的殇ゞ 提交于 2019-12-05 12:10:35
一个周好快,转眼即逝,本周又有那么三四次想放弃的想法吧,好在自己都咬牙坚持了下来,希望可以这样一直坚持下去,好了下面总结一下这个周 学习内容 读完java编程思想第七章 复用类,这一章之前没有接触过的就是代理,和代理模式类似但却不是代理模式,严格来说是组合,其它的相对来说都比较简单。 读完java编程思想第八章 多态,这一章吧,关于域即成员变量这一块不能实现多态,之前没用过也没思考过,这一个算是学习到的一个点,然后就是继承的初始化顺序,需要注意基类构造方法在调用方法时不要调用非final和private的方法,否则多态情况下会出现未初始化的问题。 关于工作,配置配置文件中文,需要注意编码格式,我单独写过一篇博客。 反思总结 其实这么一看一个周也没做多少,但是我自己感觉比较满意吧,我希望现在的学习生活啥的,可以慢一点,以前有点太过于追求速度了,什么东西都想快速实现,往往结果是一事无成或者只会一点表面,所以往后我想慢一点扎实一点。 然后,希望自己可以多用一些时间来总结思考,我想这样应该会进步快一些吧,还有以前从来都不会去总结工作,也不去整理工作中的问题,所以希望从下个周开始,学着总结一下一个周的工作情况及所遇到的问题。 来源: https://www.cnblogs.com/chunyun/p/11924121.html

编程思想总结

巧了我就是萌 提交于 2019-12-05 03:13:38
1.oop(Object Oriented Programming)面向对象程序设计   套话:封装,继承,多态(代码的表现形式);一切皆对象(感性的认知)   实用主义:用程序来实现一切事物及其之间的关系,体现全局观,而面向过程编程关注于每个实现的具体步骤流程。 2.bop(Bean Oriented Programming)面向bean编程   基于oop思想,对每一个对象的创建、关联关系等进行优雅的管理 3.aop(Aspect Oriented Programming)面向切面编程   对公共部分进行提炼,形成一个单独与业务无关的横切面的功能模块,比如日志、事务、鉴权,开发时将其隔离开来,运行时操作字节码再进行合并。 4.ioc(Inversion of Control)控制反转   控制权反转,控制对象创建的职责从开发人员转移到spring(BeanFactory),开发人员只需要拿来用。 5.di(Dependency Injection)依赖注入;dl(dependency lookup)依赖查找   对于每个对象的属性值或子对象的引用内容自动化赋值,本由开发人员做的赋值工作给spring去完成,能够保存对象与对象之间的关联关系,主要有三种赋值方式,构造方法注入,set赋值,直接赋值(反射,暴力强吻) 来源: https://www.cnblogs.com

第三方开源框架(你了解的ios只是冰山一角)总能找到要用的

十年热恋 提交于 2019-12-04 06:33:18
补充一个链接 使用搜索找到你需要的内容吧,相当丰富的合集。 原文相当多,现在展示个冰山一角 sstoolkit 一套Category类型的库,附带很多自定义控件 功能不错~ BlocksKit 将Block风格带入UIKit和Founcation cocoa-helpers 一些Cocoa的扩展 2年前的工程 CoconutKit 一系列扩展和一些自定组件 STUtils 一系列扩展包 PSFoundation 一系列扩展 和功能增强 ConciseKit 一系列宏定义 挺有意思 DTFoundation 又一系列扩展。。。 BBBootstrap 一些常见功能的扩展库 cooliris-toolkit cooliris出品的基础工具库,从GoogleCode clone过来 BaseKit 一套基础工具库 NSObject-Utility-Categories 如题 NSArray-Utilities 如题 aqtoolkit 一些常用的东西 DLIntrospection 一些NSObject的扩展 NSDate-Extensions 如题日期 ALActionBlocks 在UIControl上添加的Block事件 jrswizzle 主要是swizzling moriarty 一些还算有用的功能 QSUtilities 一些基础库 (Instagram有用到)

两大编程思想(面向过程,面向对象)

≯℡__Kan透↙ 提交于 2019-12-03 15:43:42
1. 面向过程编程(POP)  面向过程:分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。  例如:把大象装进冰箱(面向过程,就是按照我们分析好的步骤,按照步骤解决问题)   1. 打开冰箱门,   2. 把大象装进去,   3. 关上冰箱门 2. 面向对象编程(OOP)  面向对象:是把事务分解成为一个个对象,然后由对象之间分工与合作。  例如:把大象装进冰箱(面向对象是以对象来划分问题,而不是步骤)  先找出对象,并写出这些对象的功能:  1. 大象 (对象) 进去  2. 冰箱 (对象) 打开 关闭  3.使用大象和冰箱的功能 3. 面向对象特性  在面向对象程序开发思想中,每个对象都是功能中心,具有明确分工。  面向对象编程具有灵活,代码复用,容易维护和开发的优点,更适合多人合作的大型软件项目。  面向对象的特性: 封装性(封装代码) 继承性(继承父类对象) 多态性(同一个对象,在不同的时刻,体现不同的状态) 4. 面向过程 和 面向对象 的对比  面向过程:(简单,步骤明确的项目)   优点:性能比面向对象高,适合跟硬件联系很紧密的东西,例如单片机就采用面向过程编程。   缺点:没有面向对象易维护、易复用、易扩展。  面向对象:(适用大型,多人合作的项目)   优点:易维护、易复用、易扩展,由于面向对象有封装,继承