`
liuxiang123
  • 浏览: 30497 次
  • 性别: Icon_minigender_1
  • 来自: 四川
社区版块
存档分类
最新评论

js面向对象之继承练习 (模拟java策略模式)

阅读更多

js面向对象之继承学习  模拟策略模式

 

function CacheStrategy(){
	this.getCache = function(CacheService){alert("cacheStrategy getCache function!");};
	this.reloadCache = function(CacheService){alert("cacheStrategy reloadCache function!");};
}

function MemCache(){
	this.getCache = function(CacheService){
		/**
		缓存数据
		**/
		alert(CacheService.getData());
		alert("memCache getCache function!");
	};
	this.reloadCache=function(CacheService){
		alert("memCache reloadCache function!");
	}
}
MemCache.prototype = new CacheStrategy();
function OsCache(){
		this.getCache = function(CacheService){
		/**
		缓存数据
		**/
		alert(CacheService.getData());
		alert("osCache getCache function!");
	};
	this.reloadCache=function(CacheService){
		alert("OsCache reloadCache function!");
	}
}
OsCache.prototype = new CacheStrategy();
function CacheService(){
	this.getCache = function(CacheStrategy){};
	this.getData = function(){alert("cacheService getData function !");};
	this.getCacheKey = function(){};
	this.useCache = function(){};
	this.reloadCache = function(){};
}

function AbstractCache(){
	this.cacheKey = this.autoCacheKey();
	this.useCache = true;
	this.cacheStrategy = new MemCache();
}
AbstractCache.prototype = new CacheService();
AbstractCache.prototype.autoCacheKey = function(){
	return "123";
}
AbstractCache.prototype.setCacheKey = function(_cacheKey){
	this.cacheKey = _cacheKey;
}
AbstractCache.prototype.getCacheKey = function(){
	return this.cacheKey;
}
AbstractCache.prototype.setUseCache = function(_useCache){
	this.useCache = _useCache;
}
AbstractCache.prototype.getUseCache = function(){
	return this.useCache;
}
AbstractCache.prototype.setCacheStrategy = function(_cacheStrategy){
	this.cacheStrategy = _cacheStrategy;
}
AbstractCache.prototype.getCache = function(){
	return this.cacheStrategy.getCache(this);
}
AbstractCache.prototype.reloadCache = function(){
	return this.cacheStrategy.reloadCache(this);
}
function ResourceCache(){
}
ResourceCache.prototype = new AbstractCache();

ResourceCache.prototype.getData = function(){
	return "data:11111111111111111111";	
}

 

html测试页面

 

<html>
<head>
<script type="text/javascript" src="classtest.js" ></script>
<title>js类测试</title>	
</head>
<script>
	var abstractCache = new ResourceCache();
	//abstractCache.setCacheStrategy(new OsCache());
	abstractCache.getCache();
	abstractCache.setCacheKey(456);
	alert(abstractCache.getCacheKey());
</script>
<body>
</body>
</html>

 

分享到:
评论

相关推荐

    java课堂练习.doc

    13. 面向对象编程的四大特性包括抽象、封装、继承和多态。 14. 字符串连接表达式`3 + "5.2"`的结果是"8"。 15. JVM(Java Virtual Machine)是Java字节码的运行环境,模拟实际计算机。 16. Java程序的两种类型是Java...

    JAVA基础学习过程练习代码

    这涉及到类的设计、继承、封装和多态等面向对象编程概念。 7. **out**:在Java中,out通常是System.out的简称,用于标准输出。学习时,会了解System类的属性和方法,以及如何使用PrintStream进行控制台输出。 8. *...

    java基础练习项目-仿照雷蛇商城.zip

    1. **Java语法**:包括类、对象、继承、封装、多态等面向对象编程的基本概念。 2. **MVC设计模式**:项目可能采用了Model-View-Controller架构,学习如何组织和分离业务逻辑、数据模型和用户界面。 3. **Servlet与...

    java项目实战练习上手项目

    理解面向对象编程的核心概念,如接口、抽象类和访问修饰符,是每个Java开发者的基础。 2. **MVC框架**:许多Java项目采用Model-View-Controller(MVC)架构模式,如Spring MVC。这种设计模式将业务逻辑、数据和用户...

    java练习代码.doc

    Java是一种广泛使用的面向对象的编程语言,具有平台无关性、安全性、健壮性和可移植性等优点。在提供的代码片段中,我们可以看到几个关键的Java概念: 1. **类(Class)**:`Books` 和 `Dog` 是两个自定义的类,...

    java基础学习练习题.docx

    Java基础学习练习题涉及到多个Java编程的核心概念,包括面向对象编程、封装、继承、多态、接口、单例模式以及银行系统的基本业务逻辑。以下是详细的知识点解释: 1. **面向对象编程**: - 类(Class):题目中定义...

    java网页小程序浪漫烟花

    尽管如此,学习如何创建Java小程序仍然能帮助我们理解Java的面向对象编程原理、事件处理和图形渲染等基础知识。 在“浪漫烟花”项目中,开发者可能使用了Java的`java.awt`和`javax.swing`包来绘制图形和管理用户...

    Java课程学习分享经典认证班腾科.doc

    面向对象设计和模式的学习包括基本设计原则和常见设计模式,如工厂模式、策略模式、适配器模式、代理模式和门面模式。学员还将有机会通过坦克大战和鸿达业务管理系统等项目进行实践和阶段测试。 课程特别针对Oracle...

    JAVA10月考试.rar

    为了准备这样的考试,学生需要系统地学习Java和JavaScript的基本概念,通过编写代码来巩固理论知识,并进行大量的练习题和模拟测试,以提升实际编程能力。同时,了解最新的Java版本特性(例如Java 8及以后的lambda...

    计算机二级Java和Web软件.zip

    同时,深入理解类、对象、继承、封装、多态等面向对象编程的核心概念。在Web部分,要熟练运用HTML编写网页结构,用CSS进行样式设计,通过JavaScript实现交互效果。对于服务器端,需要了解Servlet和JSP的工作原理,...

    bookstore练习项目适合初学者

    - "java":Java是该项目的主要编程语言,意味着项目的后端开发使用Java,学习者需要了解Java的基础语法和面向对象编程。 - "javaweb":Java Web是指使用Java技术进行Web应用程序开发,这里包括Servlet、JSP(Java...

    java面试题(十多个不同的题库)

    1. **Core Java**: Core Java是Java的基础,包括语法、数据类型、控制结构、面向对象编程(OOP)概念如封装、继承、多态,以及异常处理、集合框架、线程、I/O流等。面试中常问的题目可能涉及如何实现设计模式、异常...

    Java学习教程-基础入门及提高.doc

    Java是基于面向对象编程的,这意味着它将现实世界中的实体抽象为类,通过类的实例(对象)来模拟实体的行为。学习Java意味着要理解类、对象、继承、封装和多态等核心概念,这些都是Java强大的基石。本书会详细介绍...

    javascript源码

    Java是一种静态类型的、面向对象的语言,主要用于服务器端开发,而JavaScript则是动态类型的、弱类型的,主要用于前端交互。 在“ch5”这个文件夹中,可能包含的是JavaScript教程的第五章内容。通常,这个阶段的...

    华为OD机试ABC+OJ(Java & JS & Py)2024+2023+2022年.rar

    学习Java时,重点应掌握类、对象、接口、继承、多态等面向对象概念,以及异常处理、集合框架、I/O流、网络编程等核心特性。对于OD机试,熟练运用数据结构(如栈、队列、链表、树等)和算法(排序、查找等)是关键。 ...

    零基础学JAVA WEB开发2

    1. **Java语言基础**:Java是Java Web开发的基础,你需要理解其语法、面向对象编程、类和对象、封装、继承、多态等概念。此外,异常处理、集合框架(如List、Set、Map)以及I/O流也是必不可少的知识点。 2. **...

    初学JAVA-WEB开发的小项目

    1. **Java基础**:Java是Java Web开发的基础,你需要熟悉Java语言的基本语法、面向对象编程(OOP)概念,如类、对象、封装、继承和多态。此外,理解异常处理和集合框架(如ArrayList、LinkedList、HashMap等)也是...

    javascript基础视频80集7

    6. **面向对象编程**:JavaScript支持类的模拟,通过构造函数和原型实现面向对象编程。视频可能介绍类的概念、实例化、继承以及多态性。 7. **错误处理**:JavaScript有try...catch语句来处理运行时错误。视频可能...

    C#MySchool练习代码

    C#的核心特性包括类、接口、继承、封装、多态等面向对象特性,以及Lambda表达式、LINQ(Language Integrated Query)等高级特性。 在MySchool项目中,你可能会遇到以下知识点: 1. **类和对象**:C#中的类是定义...

    Eloquent:雄辩的Java脚本练习

    7. 原型链:JavaScript的继承机制基于原型链,理解如何通过原型对象实现继承和方法共享,是理解JavaScript面向对象编程的关键。 8. 异步编程:JavaScript是单线程的,但通过事件循环和回调函数、Promise以及async/...

Global site tag (gtag.js) - Google Analytics