Swift中类和对象的属性分为三种:储存属性,计算属性和类属性。 import Foundation
class Person {
// 储存属性必须赋初值
var score1: Int = 20
var score2: Int = 50
// 延迟储存属性,需要时再去分配
lazy var dog: Dog = Dog()
// 计算属性,不能赋初值,提供get和
//
// main.swift
// Swift面向对象之枚举
//
// Created by Goddog on 15/7/17.
// Copyright © 2015年 Goddog. All rights reserved.
//
import Foundation
print("Swift不仅是面向过程还是面向对象的,Swift可以定义枚举、结构体、类3种面向对象的类型,
Swift中属性的用法比objective-c中属性的用法丰富了很多。下面我逐一介绍。 一、 存储属性 和 延迟存储属性 Demo如下: class Dog {
var name = "旺财"
init(){
println("狗被初始化了")
}
}
class Person {
let age = 20
var name = "Jack
一、 继承 1. Swift中定义的类,如果不继承自任何类,它就是基类。这一点和objective-c中定义的类不一样,在objective-c中定义的类默认的基类是NSObject。 2. 重写父类的方法及属性,必须使用override的关键字(这样处理的话,更清晰了,很容易看出是父类的方法还是自己类中的方法)。 3. 如果在类,方法,属性 前面用final进行了修饰,就不允许被继承或者被
Reactor事件驱动的两种设计实现:面向对象 VS 函数式编程 这里的函数式编程的设计以muduo为例进行对比说明; Reactor实现架构对比 面向对象的设计类图如下: 函数式编程以muduo为例,设计类图如下: 面向对象的Reactor方案设计 我们先看看面向对象的设计方案,想想为什么这么做; 拿出Reactor事件驱动的模式设计图,对比来看,清晰明了; 从左边开始,事件驱动,
主要知识点: 模板字符串 箭头函数 解构赋值 Symbol 第七种数据类 class 关键字 语法糖 继承 (原型继承 原型继承的问题)(构造函数继承 )(组合继承) 下面都是代码样例 看看能打印什么 /** * Created by liuml on 2017/4/7. */
//模板字符串
let name = "liu";
let age = 26;
let str = name + " i
简述 React 是一个「视图层」的 UI 框架,以常见的 MVC 来讲 React 仅是 View,而我们在编写应用时,通常还需要关注更加重要的 model,对于 React 来讲,我们常常需要一个「状态管理」库。然而,目前大多数针对 React 的状态管理库都是「强依赖」过多的侵入本应该独立的业务模型中,导致「业务逻辑」对应的代码并不能轻易在其它地方重用,往往这些框架还具有「强排它性」,但是「
Dojo是一个基于javascript语言的web控件库,要了解dojo的面向对象机制,我们可以首先来回顾一下javascript本身的基本面向对象机制: 首先,javascript主要通过函数来模拟面向对象机制,如: function func1(){}; func1(); //函数调用 new func1(); //实例化的对象 上述两种方式其函数内部的this对象也是不一样的。
每个Ajax 框架都对Javascript 做了扩展,提供了很多常用函数,增强了 Javascript 的开发效率。在这里将对部分Dojo 中的常用函数做简单的介绍。由于Dojo的常用函数较多,也为方便大家阅读,将这些常用函数分为了五个类别分别进行介绍。本文将介绍第二部分的内容:面向对象(OO)及包机制(package system)常用函数。 * 本系列博文的绝大多数内容来自于对dojocamp
最近开始学习arcgis for javascript,其中dojo是必须学习的框架,今天对相关模块化和对象化进行了研究。 总结几点:1.项目中加入dojo框架,默认JS调用目录为dojo,如果想增加新的调用目录需要写一下内容: <script >
Dojo 工具箱提供各种特性支持 web 应用程序开发人员创建 Rich Internet Applications,既节约开发时间也省去麻烦。从 DOM 帮助程序和 Asynchronous JavaScript and XML (Ajax) 到全面成熟的小部件库和面向对象特性,Dojo 实际上包括构建大规模 Ajax 驱动的 web 应用程序所需的一切。如果您所需的功能不包含在 Dojo 之中
你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起 ----- Arthur J.Riel (1)所有数据都应该隐藏在所在的类的内部。 (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。 (3)尽量减少类的协议中的消息。 (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝)、相等性判断
依赖倒装原则是面向对象设计的很重要的原则之一。这个原则要求: 具体应该依赖于抽象,而不是抽象依赖于具体。只有我们做到了具体依 赖与抽象,这样的系统才可以是可维护,可复用的。传统的复用仅仅只 是限于对具体层次的复用,比如对算法,数据结构,或者对某一个小的 模块的复用。但是在当今面向对象的设计理念里,复用要向更高一个层 次。要复用抽象的东西,也就是复用不容易变化的东西。像现在的面向 接口
來源:http://dev.csdn.net/htmls/59/59377.html OOD面向对象设计浅谈 前言 OOD指面向对象设计,在软件设计生命周期中发生于OOA之后期或者之后,OOA与OOD的不可分割性正好说明了OO思想的强大,即软件过程阶段的无缝连接,在交流与沟通中不会产生鸿沟,这是相对结构化思想的好处,因为从功能模块到某块详细控制逻辑设计两者之间的联系不是十分紧密,需要分析人员与
面向过程的软件开发通过非常集中化的控制机制来分解功能,在程序设计中表现就是大量的条件判断,深层次的循环嵌套等。这种模式下,我们可以通过分析方法的参数,局部变量及其访问的全局变量来得到方法对数据的依赖性,但是我们只有分析整个项目代码才能得到数据对方法的依赖性。 面向对象的软件开发主要关注在非常分布的环境中分解数据以及同数据相关的功能。通过高内聚(数据与其相关行为的高度融合)和
3.7 从设计中取出不需要的类 只有Get/Set方法的类不算是一个必要的类,Get/Set方法也不算是有意义的行为。这种类降级为属性更加合适。 3.8 去除系统外部的类 如果一个类只调用系统领域的方法,而系统没有向该类调用,则可以认为这个类并不属于系统。可能只是系统的使用者,我们没必要去为此建模。 创建此类时应该问一问“这个类在系统内做什么事情?” 3.9 不要把操作变成
说到了框架、架构,就不得不先提分析与设计,谈到了DDD,又不得不谈OOA/OOD。 我开始接触的时候,好像还没有那么多的名词了,至少是我不知道。我是从COM、COM+开始起步走客户服务器模型的。现在像我这个年龄还在Coding的人,估计在国内应该是越来越少了,说实话,我也累了,也想能够有新生的力量,一起把这条路一起走下去。 还是切入正题 一套框架,首先是一套方法论,离开理论支持的框架很难长久的发展
1. 原型模式 1.1 我们创建的每个函数都有一个prototype属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。 简单的解释上面的话的意思就是:首先,我们要知道,面向对象的语言中类的存在,而javascript也是一门面向对象的语言(这句话说的可能有一些毛病,但是不影响),在javascript中定义一个类函数的时候,就默认创建了一个pr
现在有许多设计原则,但是最基本的,就是SOLID(缩写),这五项原则。 S = 单一责任原则 O = 开闭原则 L = Liscov替换原则 I = 接口隔离原则 D = 依赖倒置原则 1.单一责任原则(SRP 原则): 它的意思是:“如果你可以在一个设备中实现所有的功能,你却不能这样做”。为什么呢?因为从长远来看它增加了很多的可管理性问题。 从面向对象角度解释是:"导致类变化的因素永远不
OOD 面向对象设计有很大的几率出现在小公司的面试上,在youtube上找了一个很好的教程来和大家分享一下。 问题: OOD 思想设计两人投掷硬币的游戏。 步骤一: 准备documentation 游戏介绍:随机选择一个玩家,令该玩家预测硬币的正反面,另一个玩家获得和第一个玩家相反的选项。开始投掷硬币,预测正确的赢。 Actors: 1. 玩家A 2. 玩家B 3. 硬币 4. 掷硬币游戏 根