- 浏览: 21406 次
- 性别:
最新评论
-
barryzhong:
kingbo203 写道Android 平台 ...
生命周期组件框架:生命周期描述语言——简单状态机示例代码 -
kingbo203:
Android 平台也实现了一个简易的状态机框架:框架的定义: ...
生命周期组件框架:生命周期描述语言——简单状态机示例代码 -
barryzhong:
superdingdang 写道@Function中的valu ...
生命周期组件框架:生命周期描述语言——简单状态机示例代码 -
superdingdang:
@Function中的value表达什么意思?
生命周期组件框架:生命周期描述语言——简单状态机示例代码 -
barryzhong:
superdingdang 写道引用“在飞行的”进程或者过程指 ...
[已更新Demo附件]生命周期组件框架——关系型状态机服务
文章列表
生命周期的约束问题,可以从方法执行的前置条件切入进而展开讨论。
几日前与同行讨论到这样一个问题:
在应用开发中,在运行时允许一个Method被成功激活的前置条件有哪些方面?
讨论归纳成为如下三个方面,在此与大家分享,希望可以抛砖引玉,多收集一些素材:
1. 安全性约束
2. 参数的约束
参数上下文无关约束
参数上下文相关约束
让写业务代码变得再简单一些!
关系型状态机服务的生命周期(Lifecycle)组件框架开启一个新的维度,与各种框架提供的通用非功能服务(比如事务服务,安全性服务)等略有区别,它更贴近于业务建模本身,而又 ...
这篇博文旨在提高编码的健壮性。良好的生命周期设计是代码健壮的前提之一,任何一个独立的类都应该维护好自己的生命周期,即使在客户类调用过程中没有产生错误。若生命周期设计存在漏洞或者编码与生命周期设计不一 ...
传统编程模型可以采用最经典的状态模式构建状态机,已达到刻画对象生命周期的目的。在这种编程模型中,为了表达一个状态转移需要应用程序员编写下面类似的代码。
例如在Android开放源代码中的StateMachine.java
Java代码
private class HaltingState extends State {
728 @Override
729 public boolean processMessage(Message msg) {
730 mSm.haltedProcessMessage(msg);
731 ...
ServiceOrder生命周期元数据
@StateMachine
public interface ServiceOrderLifecycleMeta extends OrderLifecycleMeta {
@StateSet
public static class States extends OrderLifecycleMeta.States {
@InboundWhiles({
@InboundWhile(relation = SummaryPlan.class, on = { Servic ...
@StateMachine
static interface LockingStateMachine {
@StateSet
static interface States {
@Initial
@Function(transition = LockingStateMachine.Transitions.Start.class, value = Started.class)
static interface Created {}
@Fu ...
@StateMachine
static interface InformativeStateMachine {
@StateSet
static interface States {
@Initial
@Functions({ @Function(transition = Transitions.LogicalDelete.class, value = Recycled.class),
@Function(transition = ...
public static class TestLifecycleEventHandler implements LifecycleEventHandler {
static List<LifecycleEvent> eventList = new ArrayList<>();
@Override
public void onEvent(LifecycleEvent event) {
eventList.add(event);
}
}
...
@StateMachine
protected static interface CustomerLifecycleMeta {
@StateSet
static interface States {
@Initial
@Function(transition = CustomerLifecycleMeta.Transitions.Activate.class, value = { Active.class })
static interface Dra ...
@StateMachine
public static interface InvoiceStateMachineMeta {
@StateSet
static interface States {
@Initial
@Function(transition = InvoiceStateMachineMeta.Transitions.Post.class, value = { InvoiceStateMachineMeta.States.Posted.class })
...
//状态机元数据描述
@StateMachine
protected static interface CustomerLifecycleMeta{
@StateSet
static interface States {
@Initial
@Transition(event = CustomerLifecycleMeta.Events.Activate.class, value = {Active.class})
static interface Dr ...
@StateMachine
static interface OrderLifecycle {
@StateSet
static interface States {
@Initial
@Function(transition = Transitions.Start.class, value = Started.class)
static interface Created {}
@CompositeState
...
关系生命周期
@StateMachine
static interface ContractLifecycle {
@StateSet
static interface States {
@Initial
@Functions({ @Function(transition = ContractLifecycle.Transitions.Activate.class, value = Active.class),
...
在写过《Java编程的动态特性,从Reflection到Runtime Class Transformation》入门日记之后,笔者继续在此方向上实践了2天的日夜煎熬,最终实现了最初的想法。然而在临末之时忽然发现一条捷径,倘若早采用这条捷径,将会少走很多弯路,便可以更快的完成最初的目标。所以本篇入门日记主要介绍这条捷径,以便各位搞技术的兄弟姐妹待用之时便可以少走很多弯路且节省很多时间。
第一部分 实验目的
理解Glassfish V3.1.2.2 Cluster的工作原理
理解Apache HTTPD 软件负载均衡的工作原理
理解如何使用Glassfish的内存复制功能
验证是否或者如何通过Apache HTTPD + Glassfish完成故障转移
第二部分 实验环境设计与搭建
2.1 实验环境拓扑
为了方便起见,实验环境由如简化过的网络拓扑示意图所示,有两个子网构成,分别为Glassfish Cluster Web Subnet和Glassfish Cluster Admin Subnet。
其中Glassfish Cluste ...