flex布局水平垂直 垂直_垂直和水平装饰
flex布局水平垂直 垂直
裝飾器模式是在不更改其接口的情況下向對象添加功能的最佳方法之一。 我經(jīng)常使用可組合裝飾器,并且總是會問自己在功能列表必須可配置時如何正確設計它們。 我不確定我的答案是否正確,但是這里有一些值得深思的地方。
The Apartment(1960),比利·懷爾德(Billy Wilder)
假設我有一個數(shù)字列表:
interface Numbers {Iterable<Integer> iterate(); }現(xiàn)在,我想創(chuàng)建一個僅包含奇數(shù),唯一,正數(shù)和排序數(shù)的列表。 第一種方法是垂直的 (我剛剛將其命名):
Numbers numbers = new Sorted(new Unique(new Odds(new Positive(new ArrayNumbers(new Integer[] {-1, 78, 4, -34, 98, 4,})))) );第二種方法是水平的 (同樣,我做了一個名字):
Numbers numbers = new Modified(new ArrayNumbers(new Integer[] {-1, 78, 4, -34, 98, 4,}),new Diff[] {new Positive(),new Odds(),new Unique(),new Sorted(),} );看到不同? 第一種方法“垂直”修飾ArrayNumbers ,通過可組合修飾符Positive , Odds , Unique和Sorted添加功能。
第二種方法引入了新的接口Diff ,該接口通過Positive , Odds , Unique和Sorted實例實現(xiàn)了迭代數(shù)字的核心功能:
interface Diff {Iterable<Integer> apply(Iterable<Integer> origin); }對于numbers用戶,這兩種方法是相同的。 區(qū)別僅在于設計。 哪個更好?何時? 似乎垂直裝飾更易于實現(xiàn),并且更適合于只暴露一些方法的較小對象。
根據(jù)我的經(jīng)驗,我總是傾向于從垂直裝飾開始,因為它易于實現(xiàn),但隨著裝飾器數(shù)量的增加最終會遷移到水平裝飾。
翻譯自: https://www.javacodegeeks.com/2015/10/vertical-and-horizontal-decorating.html
flex布局水平垂直 垂直
總結
以上是生活随笔為你收集整理的flex布局水平垂直 垂直_垂直和水平装饰的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javafx窗体程序_JavaFX实际应
- 下一篇: (tomcat在linux)