亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        GOF設(shè)計(jì)模式變體分類研究

        2017-12-11 10:35:19李港楊道武彭逸凡董澤民肖卓宇
        電腦知識(shí)與技術(shù) 2017年31期

        李港 楊道武 彭逸凡 董澤民 肖卓宇

        摘要:設(shè)計(jì)模式提供一種可復(fù)用的解決方案,并有助于提高軟件研發(fā)的效率。但隨著GOF設(shè)計(jì)模式成熟化與規(guī)?;F(xiàn)有23種經(jīng)典設(shè)計(jì)模式已不能滿足業(yè)務(wù)需求,為此,眾多學(xué)者對(duì)傳統(tǒng)GOF設(shè)計(jì)模式進(jìn)行了演化,該文致力于演化后設(shè)計(jì)模式的研究,提出了設(shè)計(jì)模式變體的概念,研究了變體特征,以裝飾者模式與代理模式為例,給出了具體的研究實(shí)現(xiàn),取得了較好的研究效果,說(shuō)明了設(shè)計(jì)模式變體值得進(jìn)一步深入研究。

        關(guān)鍵詞:設(shè)計(jì)模式;設(shè)計(jì)模式變體;方案演化;設(shè)計(jì)模式分類;GOF

        中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)31-0085-02

        1 概述

        設(shè)計(jì)模式是一套經(jīng)典的,并得到了廣大軟件開(kāi)發(fā)人員認(rèn)可的可復(fù)用設(shè)計(jì)方案[1-3]。目前,(Gang of four, GOF)GOF設(shè)計(jì)模式主要分為結(jié)構(gòu)型、行為型及創(chuàng)建型3類共計(jì)23種[4]。隨著設(shè)計(jì)模式應(yīng)用技術(shù)的普及化與成熟化,現(xiàn)有設(shè)計(jì)模式在實(shí)際應(yīng)用被不斷演化,并形成3類GOF標(biāo)準(zhǔn)設(shè)計(jì)模式變體[5-6]。文獻(xiàn)[7]基于形式概念分析FCA與實(shí)例推理技術(shù)CBR,并應(yīng)用余弦理論提出一種設(shè)計(jì)模式方案推薦系統(tǒng)。文獻(xiàn)[8]結(jié)合圖形理論與矩陣相似計(jì)算理論提出一種設(shè)計(jì)模式檢測(cè)策略。文獻(xiàn)[9]對(duì)設(shè)計(jì)模式參與者角色間的關(guān)系進(jìn)行了分類研究,側(cè)重探討了改變?cè)O(shè)計(jì)模式意圖的附加關(guān)系,并依據(jù)特征制定了附加關(guān)系識(shí)別規(guī)則。文獻(xiàn)[10]基于子圖同構(gòu)原理與UML類圖匹配策略進(jìn)行了設(shè)計(jì)模式實(shí)例挖掘。

        為此,進(jìn)行設(shè)計(jì)模式研究是非常有意義的,而設(shè)計(jì)模式演化后的變體更是研究的熱點(diǎn)與難點(diǎn),本文工作將對(duì)典型設(shè)計(jì)模式變體進(jìn)行研究分析與實(shí)現(xiàn)。

        2 GOF模式變體分類識(shí)別研究

        為研究設(shè)計(jì)模式變體,以結(jié)構(gòu)型裝飾者模式與代理模式為例進(jìn)行深入研究。

        2.1 裝飾者設(shè)計(jì)模式變體

        GOF標(biāo)準(zhǔn)裝飾者模式意圖不是為某個(gè)類,而是為一個(gè)具體對(duì)象增加新的功能。圖1為一個(gè)典型的裝飾者模式變體。

        ——————一person接口———————

        public interface Person { void eat();}

        ——————-二Man———————————

        public class Man implements Person {

        public void eat() {

        System.out.println("男人在吃"); }}

        ——————-三Decorator抽象類——————

        public abstract class Decorator implements Person {

        protected Person person;

        public void setPerson(Person person) {

        this.person = person; }

        public void eat() {person.eat();}}

        ——————四Decorator的擴(kuò)展類—————

        public class ManDecoratorA extends Decorator {

        public void eat() {

        super.eat();

        reEat();

        System.out.println("ManDecoratorA類");}

        public void reEat() {

        System.out.println("再吃一頓飯");}}

        public class ManDecoratorB extends Decorator {

        public void eat() {

        super.eat();

        System.out.println("吃菜");

        System.out.println("ManDecoratorB類"); }}

        ————————-六Container————————

        public class Container {

        public ManDecoratorA ManDecoratorA(Person person){

        ManDecoratorA A= new ManDecoratorA();

        A.setPerson(person);

        return A; }

        public ManDecoratorB ManDecoratorB(Person person){

        ManDecoratorB B= new ManDecoratorB();

        B.setPerson(person);

        return B;}}

        ————————七test類————————

        public class test {

        public static void main(String[] args) {

        Man man = new Man();

        Container c=new Container();

        c.ManDecoratorB(c.ManDecoratorA(man)).eat();}}

        2.2 代理設(shè)計(jì)模式變體

        代理模式旨在為設(shè)計(jì)模式參與者角色對(duì)象提供一種可訪問(wèn)某種特定對(duì)象的代理控制機(jī)制。

        ——————————-項(xiàng)目接口—————————

        public interface ISubject { void action(); }

        ——————————-抽象項(xiàng)目—————————-

        public abstract class AbstractRealSubject implements ISubject{

        public void action(){ }

        ———————-抽象項(xiàng)目的泛化3個(gè)———————-

        public class RealSubject1 extends AbstractRealSubject {

        public void action(){

        System.out.println("代理開(kāi)始");

        System.out.println("這是第一個(gè)項(xiàng)目在執(zhí)行");

        System.out.println("代理結(jié)束"); }}

        public class RealSubject2 extends AbstractRealSubject {

        public void action(){

        System.out.println("代理開(kāi)始");

        System.out.println("這是第二個(gè)項(xiàng)目在執(zhí)行");

        System.out.println("代理結(jié)束"); }}

        public class RealSubject3 extends AbstractRealSubject {

        public void action(){

        System.out.println("代理開(kāi)始");

        System.out.println("這是第三個(gè)項(xiàng)目在執(zhí)行");

        System.out.println("代理結(jié)束"); }}

        ————————項(xiàng)目的代理————————-

        package Proxy01;

        public class SubjectProxy implements ISubject{

        AbstractRealSubject subject;

        public SubjectProxy(){

        System.out.println("——這是代理類——");}

        public void action() {subject=new RealSubject1();}

        public void Subject1() {

        subject=new RealSubject1();

        subject.action();}

        public void Subject2() {

        subject=new RealSubject2();

        subject.action();}

        public void Subject3() {

        subject=new RealSubject3();

        subject.action();}

        ————————-test類————————-

        public class test {

        public static void main(String[] args) {

        SubjectProxy proxy=new SubjectProxy();

        proxy.Subject1();

        proxy.Subject2();

        proxy.Subject3();}}

        3 結(jié)論

        GOF設(shè)計(jì)模式在軟件系統(tǒng)設(shè)計(jì)中得到廣泛的應(yīng)用,但傳統(tǒng)23種經(jīng)典GOF設(shè)計(jì)模式已不能完全滿足設(shè)計(jì)模式需求,本文工作側(cè)重研究設(shè)計(jì)模式演化后變體的實(shí)際應(yīng)用,并對(duì)設(shè)計(jì)模式分類進(jìn)行了實(shí)現(xiàn),取得了較好的效果。事實(shí)證明設(shè)計(jì)模式變體的研究具有積極的意義,后續(xù)工作中將對(duì)設(shè)計(jì)模式變體進(jìn)行更深入的研究,歸納具有普遍性的變體識(shí)別規(guī)則,并為設(shè)計(jì)模式變體檢測(cè)奠定堅(jiān)實(shí)的基礎(chǔ)。

        參考文獻(xiàn):

        [1] 肖卓宇, 何锫, 余波, 等. 一種形式化上下無(wú)關(guān)文法關(guān)系驅(qū)動(dòng)的設(shè)計(jì)模式檢測(cè)方法[J]. 工程科學(xué)學(xué)報(bào), 2016, 38(10).

        [2] 肖卓宇, 何锫, 余波. 一種多階段交互式線索驅(qū)動(dòng)的設(shè)計(jì)模式識(shí)別方法[J]. 北京航空航天大學(xué)學(xué)報(bào), 2017, 43(9).

        [3] 肖卓宇, 何锫, 楊鑫維, 等. 基于文法產(chǎn)生式優(yōu)化的設(shè)計(jì)模式識(shí)別方法[J]. 電子科技大學(xué)學(xué)報(bào), 2017, 46(3).

        [4] 肖卓宇, 黃海, 何锫, 等. 設(shè)計(jì)模式檢測(cè)工具有效性評(píng)估策略[J/OL]. 計(jì)算機(jī)科學(xué)與探索, http://kns.cnki.net/kcms/detail/11.5602.TP.20170504.1312.006.html.

        [5] 肖卓宇, 何锫, 陳俊旭,等. 設(shè)計(jì)模式變體檢測(cè)研究[J]. 小型微型計(jì)算機(jī)系統(tǒng), 2017, 38(8).

        [6] 肖卓宇, 何锫, 陳俊旭. 設(shè)計(jì)模式變體的描述與驗(yàn)證[J]. 計(jì)算機(jī)應(yīng)用研究, 2017, 34(6).

        [7] 肖卓宇, 何锫, 余波, 等. 基于FCA與CBR的設(shè)計(jì)模式檢測(cè)[J]. 山東大學(xué)學(xué)報(bào):工學(xué)版, 2016, 46(2).

        [8] 肖卓宇, 黎妍, 何锫, 等. 基于矩陣積分評(píng)估的設(shè)計(jì)模式檢測(cè)研究[J]. 小型微型計(jì)算機(jī)系統(tǒng), 2016, 37(7).

        [9] 肖卓宇, 何锫, 黎妍. 基于設(shè)計(jì)模式角色的附加關(guān)系檢測(cè)研究[J]. 計(jì)算機(jī)應(yīng)用研究, 2015, 32(7).

        [10] 肖卓宇, 何锫, 黎妍. 基于DPS表達(dá)式類圖的設(shè)計(jì)模式檢測(cè)[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2015, 36(10).

        激情亚洲综合熟女婷婷| 97午夜理论片影院在线播放| 丰满少妇av一区二区三区 | www.久久av.com| 中文字幕色一区二区三区页不卡| 久久熟妇少妇亚洲精品| 国产午夜福利100集发布| 国产人成精品免费视频| 国产乱妇乱子在线视频| 国产亚洲精品第一综合麻豆| 亚洲五月婷婷久久综合| 中文字幕亚洲高清精品一区在线 | 香港三级日本三级a视频| 黄瓜视频在线观看| 午夜一级在线| 中文字幕成人精品久久不卡| 精品一区二区中文字幕| 偷拍色图一区二区三区| 欧美性生交大片免费看app麻豆 | 国产美女av一区二区三区| 久久一区二区国产精品| 少妇性俱乐部纵欲狂欢少妇| 男人激烈吮乳吃奶视频免费| 无遮挡十八禁在线视频国产制服网站 | 国产sm调教视频在线观看| 精选麻豆国产AV| 人妻1024手机看片你懂的| 国产精品videossex久久发布| 精品久久久久久777米琪桃花| 亚洲成AV人久久| av在线播放免费网站| 免费a级毛片18以上观看精品| 女同亚洲女同精品| 日本人妖一区二区三区| 久久久精品国产免大香伊| 国产成人久久精品77777综合| 精品视频在线观看一区二区三区| 人妻少妇精品视中文字幕免费| 老太脱裤子让老头玩xxxxx| 国产精品久久久久久2021| 国产盗摄一区二区三区av|