相关疑难解决方法(0)

如何设计可扩展的软件(插件架构)?

我需要一些资源来讨论如何将软件设计为可扩展的,即让其他人可以编写添加功能的附加组件/插件.

您有什么推荐的吗?那里有讨论这个主题的书吗?
我更喜欢那些简短而重要的东西; 一点理论和一堆具体的例子.

我不是针对特定语言,我希望能够理解核心思想,以便我可以用任何语言实现它.

出于同样的原因,我宁愿不使用其他人构建的框架(除非框架不是非常高级,即不会隐藏太多),目前我只想教育自己主题和实验以各种方式实现它.此外,框架通常假定用户对该主题的了解.

UPDATE

我不是在询问OOP或者是否允许我的类被继承.我所说的是设计一个将部署在系统上的应用程序,以便在部署之后可以通过第三方附加组件进行扩展.

例如,Notepad ++有一个插件架构,您可以将.dll文件放在plugins文件夹中,并为不存在的应用程序添加功能,例如颜色选择或片段插入,或许多其他内容(广泛的功能).

language-agnostic resources plugins extensibility

72
推荐指数
3
解决办法
3万
查看次数

什么时候应该使用像OSGI这样的平台什么时候必须避免?

我的问题非常简单:应用程序的哪些功能迫使开发人员利用类似OSGI的系统?当不需要这样的工具时,有哪些情况?

desktop osgi

15
推荐指数
1
解决办法
3991
查看次数

使用osgi开发应用程序

我正在java中开发一个基于语义的搜索应用程序.为了使应用程序模块化,我想使用osgi架构.但由于我是osgi的新手,我不知道使用它的优点和缺点.任何人都可以解释使用osgi的优点/缺点,使用osgi /应用程序将通过这样做获得什么样的应用程序将受益?

谢谢!!

java eclipse osgi

14
推荐指数
1
解决办法
5524
查看次数

OSGi如何管理在单独的JVM中运行的组件的交互?

我一直试图更多地了解OSGi的更广泛的图片而不通过整个规范阅读.和许多事情一样,OSGi实际上是什么的介绍可能是由那些已经工作了十年的人编写的,也许并不是最能让自己置身于对此一无所知的人心态的人:-)

看看菲利克斯的例子DictionaryService,我真的不明白发生了什么.OSGi是一个独特的JVM实例,您可以在其中加载捆绑包,然后可以找到彼此的捆绑包吗?

显然,这是 只是这一点,因为在计算器上其他的答案是明确的是OSGi的解决包含不同的JVM(加上FAQ在谈论内部署的模块分布式系统的依赖性问题的网络).

在后一种情况下,在一个JVM中运行的组件如何与单独的JVM中的另一个组件交互?这两个组件可以相互"使用",就像它们在同一个JVM中运行一样(即通过本地方法调用),OSGi如何管理网络上的数据编组(Serializable例如,您是否必须使用)?

或者组件作者是否必须使用其他一些不同的机制(由OSGi提供或自己编写)来进行远程组件之间的通信?

任何帮助非常感谢!

osgi

13
推荐指数
1
解决办法
4054
查看次数

如何向Java Web应用程序添加模块化功能

我已经开发了一个基于Java EE的Web应用程序作为一个开源项目

现在,一些贡献者喜欢通过插入Web应用程序的模块来添加其他功能

您能否解释一下如何实现这一目标,或将我引向参考文献。

modularity java-ee

11
推荐指数
1
解决办法
174
查看次数

是否可以在Java中进行猴子修补,如果没有替代方案?

这是8年前在这里被问到的,从那时起已经过了8年.我想再次问这个问题,看看是否有人开发了一个猴子修补的框架,工具或库.

基本上我需要它是一个java应用程序,我应用自己的补丁.由于这个项目由另一个团队维护,我希望能够保留/应用我制作的任何补丁,以及他们制作的补丁.

java monkeypatching

10
推荐指数
2
解决办法
3332
查看次数

如何在Java中选择从哪个库导入类?

我有两个版本的Java库model.jar,每个版本都有相同的类集(但实现不同).我想编写一个Java类,从一个版本导入一些类,并从另一个版本导入一些类.

我知道我可以通过给他们不同的名字包括在编译中:

javac -cp model.jar;model2.jar MyClass.java
Run Code Online (Sandbox Code Playgroud)

但是任何import语句都会从我在类路径中指定的第一个.jar文件中导入相应的类.

我可以在我的import语句中指定要导入哪个库,因为两个文件的库结构都相同吗?

java

9
推荐指数
1
解决办法
869
查看次数

Peaberry为Guice解决了什么问题?

由于这个问题,我理解OSGI解决的问题....

OSGi解决了什么?

而且我已经相信Guice是惊人的,所以我很好奇这个被称为"peaberry"的Guice的OSGI集成应该做什么,它似乎在各处出现,甚至在Maven 3演示中.

http://code.google.com/p/peaberry/

osgi guice libraries peaberry

8
推荐指数
2
解决办法
1217
查看次数

是否可以只在同一个包和子包中访问接口?

是否可以只在同一个包和子包中访问接口?

我已经使用默认修饰符定义了一个接口:

package com.mycompany.myapp.dao;

import java.io.Serializable;

interface BaseDao<T, Id extends Serializable> {
    public void create(T t);    
    public T readById(Id id);   
    public void update(T t);    
    public void delete(T t);
}
Run Code Online (Sandbox Code Playgroud)

现在我有一个子包,我想在其中定义一个实现的类BaseDao.所以我写了这段代码:

package com.mycompany.myapp.dao.jpa;

import java.io.Serializable;

public class BaseDaoJpa<T, Id extends Serializable> implements BaseDao<T, Id> {
...
}
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

BaseDao无法解析为某种类型

那么这是Java对接口的限制,还是我做错了?

谢谢

java interface

6
推荐指数
1
解决办法
306
查看次数