继承-关于代码复用的一些探讨

问题描述

关于代码复用的一些探讨

我以android为例,最近有些想法和困惑,或许和网友们探讨下可能会有更好的收获,因为我思考到一个死胡同里去了,可能我的见识还是太窄,如果你有什么可以指点的,希望可以指导下,谢谢!

主要是这样,如果已android为例的话,有很多个界面,并且界面都很相似,总结下来后这些界面中最多含有A、B、C、D四个元素,不同的就是可能每个界面需要用到的不一样比如有的界面用到A和B,有的用到B、C、D,有的用到A、B、C,如果要写很多的单独界面那就很麻烦繁琐,我就想来简化,下面是我的两个思路,可是感觉都不太好,各位有没有什么其他的可以指点的?

一、 因为所有的界面都要用到ABCD这四个元素,不同的只不过是不一定是那几个罢了,所以我定义一个abstract的基类,将这四个元素都实现了,让所有的界面都继承这个基类,同时通过一个初始化方法来设置这四个元素中的那些是用来显示的。 这个方法比较简单,基类写好后所有其他的界面只需要初始化一下就好了,但是,不符合继承的定义,因为父类职能有公共方法,按上面的例子,那么父类中只应该含有B。可是又很方便,怎么办?

二、 以上面为例子的话父类中写好B元素,其他的界面需要什么元素再单独添加,这样符合父类的定义,可是其他界面中又需要写很多其他的元素,比如某页面page1和page2都需要A元素,那么这两个页面都要写A的方法,很繁琐不是吗?

大家有没有什么更好的想法或者觉得上面的两个做法,哪一个好呢?

解决方案

安卓有很多的开源框架,我觉的你探讨这些都非常好,但是github上面开源 框架我觉的是比较值得学习的

时间: 2024-09-20 21:01:18

继承-关于代码复用的一些探讨的相关文章

代码复用的规则

代码复用是绝大多数程序员所期望的,也是OO的目标之一.总结我多年的编码经验,为了使代码能够最大程度上复用,应该特别注意以下几个方面. 对接口编程 "对接口编程"是面向对象设计(OOD)的第一个基本原则.它的含义是:使用接口和同类型的组件通讯,即,对于所有完成相同功能的组件,应该抽象出一个接口,它们都实现该接口.具体到JAVA中,可以是接口(interface),或者是抽象类(abstract class),所有完成相同功能的组件都实现该接口,或者从该抽象类继承.我们的客户代码只应该和该

PHP中的traits实现代码复用使用实例

  这篇文章主要介绍了PHP中的traits实现代码复用使用实例,本文讲解了Trait简单使用.优先级问题.多个Trait冲突问题.as可用来修改方法访问控制.Trait中使用Trait等内容,需要的朋友可以参考下 PHP5.4后新增traits实现代码复用机制,Trait和类相似,但不能被实例化,无需继承,只需要在类中使用关键词use引入即可,可引入多个Traits,用','隔开. (1)Trait简单使用 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

PHP 实现代码复用的一个方法 traits新特性

 这篇文章主要介绍了PHP 实现代码复用的一个方法,traits的新特性的相关资料,需要的朋友可以参考下     在阅读yii2源码的时候接触到了trait,就学习了一下,写下博客记录一下. 自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits. Traits 是一种为类似 PHP 的单继承语言而准备的代码复用机制.Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用方法集.Traits 和类组合的语义是定义了一种方式来减少复杂性,

JavaScript代码复用模式详解

 代码复用及其原则 代码复用,顾名思义就是对曾经编写过的代码的一部分甚至全部重新加以利用,从而构建新的程序.在谈及代码复用的时候,我们首先可以想到的是继承性.代码复用的原则是: 优先使用对象组合,而不是类继承 在js中,由于没有类的概念,因此实例的概念也就没多大意义,js中的对象是简单的键-值对,可以动态的创建和修改它们. 但在js中,我们可以使用构造函数和new操作符来实例化一个对象,这与其他使用类的编程语言在语法上有其相似之处. 例如: var trigkit4 = new Person()

JS代码复用

js 中复用代码 说道代码复用,一般都会涉及到对象继承.在js中有许多可以选择的继承方法.这些方法对于学习和理解多种不同的模式有很大的好处,因为它们有助于提供对语言的掌握程度. 但是在开发的过程中,并不是所有的代码复用都会使用到继承.其中一部原因在于,事实上使用的js库可能以这样的或那样的方式解决了该问题.而另一方面的原因就在于很少需要在js中建立长而且复杂的继承链.在静态强类型语言中,继承可以能是唯一复用代码的方法.在js中,经常有更加简洁而且优美的方法.包括:借用方法.绑定.复制属性以及从多

深入理解JavaScript系列(45):代码复用模式(避免篇)详解_基础知识

介绍 任何编程都提出代码复用,否则话每次开发一个新程序或者写一个新功能都要全新编写的话,那就歇菜了,但是代码复用也是有好要坏,接下来的两篇文章我们将针对代码复用来进行讨论,第一篇文避免篇,指的是要尽量避免使用这些模式,因为或多或少有带来一些问题:第二排是推荐篇,指的是推荐大家使用的模式,一般不会有什么问题. 模式1:默认模式 代码复用大家常用的默认模式,往往是有问题的,该模式使用Parent()的构造函数创建一个对象,并且将该对象赋值给Child()的原型.我们看一下代码: 复制代码 代码如下:

深入理解JavaScript系列(46):代码复用模式(推荐篇)详解_javascript技巧

介绍 本文介绍的四种代码复用模式都是最佳实践,推荐大家在编程的过程中使用. 模式1:原型继承 原型继承是让父对象作为子对象的原型,从而达到继承的目的: 复制代码 代码如下: function object(o) {     function F() {     }     F.prototype = o;     return new F(); } // 要继承的父对象 var parent = {     name: "Papa" }; // 新对象 var child = obje

PHP中的traits实现代码复用使用实例_php技巧

PHP5.4后新增traits实现代码复用机制,Trait和类相似,但不能被实例化,无需继承,只需要在类中使用关键词use引入即可,可引入多个Traits,用','隔开. (1)Trait简单使用 <?php trait A { public $var1 = 'test1'; public function test1() { echo 'trait A::test1()'; } } trait B { public $var2 = 'test2'; public function test2(

PHP使用traits实现代码复用的例子

PHP5.4后新增traits实现代码复用机制,Trait和类相似,但不能被实例化,无需继承,只需要在类中使用关键词use引入即可,可引入多个Traits,用','隔开. (1)Trait简单使用 <?php   trait A {     public $var1 = 'test1';     public function test1() {         echo 'trait A::test1()';     } }   trait B {     public $var2 = 'te