本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- zysnba
- xiangjie88
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- tanling8334
- arpenker
- gaojingsong
- kaizi1992
- xpenxpen
- jh108020
- 龙儿筝
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- mengjichen
- lemonhandsome
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- siemens800
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
最新文章列表
php中的OOP思想简介及如何使用oop面向对象实现一个’软件’
OOP:Object Oriented Programming,面向对象编程 面向对象程序设计
三大特征:
封装:隐藏内部实现的细节,给外部提供一个接口,程序中是通过类来实现的
继承:代码重用,通过extends实现,子类可以继承父类的属性和方法(private除外)
多态:多种形态,PHP本身就是一个多态性语言,因为它是弱类型的,php
OOP三大特性及几大设计原则
封装:
1.隐藏实现细节;2.恰当地公开接口;3.将接口和实现分开,增强可维护性;(实现细节改变时,使用该类的客户端程序不需要改变)
继承:
1.描述联结类的层次模型;2.通过抽象,表达共性,实现类的重用;3.通过子类增加方法和属性以及重写方法,表达差异性;
多态:
1.屏蔽子类的差异性,针对共性/接口编程;(向上转型)2.增强可扩展性;
相关设计原则(设计模式一般遵守的 ...
深入浅出OOP(六): 理解C#的Enums
MSDN定义:枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一种有效的方法。 例如,假设您必须定义一个变量,该变量的值表示一周中的一天。
该变量只能存储七个有意义的值。 若要定义这些值,可以使用枚举类型。枚举类型是使用 enum 关键字声明的。
从OOP上来说,枚举的角色和和class一样,它创建了一种新的数据类型。
1: namespace Enums
...
深入浅出OOP(五): C#访问修饰符(Public/Private/Protected/Internal/Sealed/Constants)
访问修饰符(或者叫访问控制符)是面向对象语言的特性之一,用于对类、类成员函数、类成员变量进行访问控制。同时,访问控制符也是语法保留关键字,用于封装组件。
Public, Private, Protected at Class Level
在创建类时,我们需要考虑类的作用域范围,如谁可访问该类,谁可访问该类成员变量,谁可访问该类成员函数。 换而言之,我们需要约束类成员的访 ...
深入浅出OOP(四): 多态和继承(抽象类)
在本文中,我们讨论OOP中的热点之一:抽象类。抽象类在各个编程语言中概念是一致的,但是C#稍微有些不一样。本文中我们会通过代码来实现抽象类,并一一进行解析。
Abstract Classes
在微软的MSDN中,对抽象类有如下的定义:
用abstract 关键字可定义抽象类,要求其子类必须实现抽象类的函数、属性等。抽象类不可被实例化。抽象类提供了统一的定义,用于其不同子类直接共享数据、函 ...
深入浅出OOP(三): 多态和继承(动态绑定/运行时多态)
在前面的文章中,我们介绍了编译期多态、params关键字、实例化、base关键字等。本节我们来关注另外一种多态:运行时多态, 运行时多态也叫迟绑定。
运行时多态或迟绑定、动态绑定
在C#语音中,运行时多态也叫方法重写(overriding),我们可以在子类中overriding基类的同签名函数,使用“virtual & override”关键字即可。
C#的New、Ove ...
OOP和AOP区别
OOP(面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。而AOP则是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。这两种设计思想在目标上有着本质的差异。
举个简单的例子,对于“雇员”这样一个业务实体进行封装,自然是OOP/OOD的任务,我们可以为其建立一个“Employee” ...
深入浅出OOP(二): 多态和继承(继承)
本文是深入浅出OOP第二篇,主要说说继承的话题。
继承的介绍
在OOP中,继承有如下的定义:
继承是一种OOP的机制,用于派生继承预定义的类
在这个继承关系中,预定义的类是基类,新类是子类
继承常常用于实现代码重用
继承允许子类复用基类非private的的数据和方法
继承的实现
创建一个Console工程,命名为InheritanceAndPolymorphism。添加C ...
已知的软件设计方法与技术(至少5中)
已知的软件设计方法与技术(至少5中),以及它们促进了哪些审美标准的达成
1) 模块化:
进行模块划分,隐藏一些程序片段(数据结构和算法)的实现细节,暴露接口与外界;且保证模块内部的内聚度较高,模块与外界的耦合较低。模块隐藏实现细节,通过接口访问模块,因此促进了简洁性;且因为功能内聚,对外提供统一的外部接口,因此促进了结构一致性
针对系统变化,将可能变化的部分与其他部分解耦,不直接发生程序调用 ...
深入浅出OOP(一): 多态和继承(早期绑定/编译时多态)
在本系列中,我们以CodeProject上比较火的OOP系列博客为主,进行OOP深入浅出展现。
无论作为软件设计的高手、或者菜鸟,对于架构设计而言,均需要多次重构、取舍,以有利于整个软件项目的健康构建,有些经验是前辈总结的,我们拿来使用即可,有些是团队知识沉淀的,总之复用前人好的思想有利于减少返工。当然,在面试的时候,如果能围绕OOP大谈特谈,自然会加分多多的。
开始阅读本系列博客的预备知识 ...
面向对象编程之分层思想
分层: 就是为了忽略细节,关注自己需要关注的地方。
1. 实体层:分析模块所要设计的表,确定表之间的关系 --> 编写hibernate Mapping 文件和持久化实体类。
2. DAO层:根据模块需要的各种持久化操作,确定对应方法。 --> 编写 DAO 和实现。
3. 服务层:编写业务逻辑,调用 DAO 层操作 --> 编写 Service ...